将本地仓库中的README.md推送给远程github中的react-demo1仓库中:
"# react-demo1" >> README.md
删除.git
rm -rf .git
初始化
git init
添加文件 README.md
git add README.md
提交评论
git commit -m "first commit"
链接远程仓库react-demo1
git remote add origin https://github.com/newway7/react-demo1.git
取消链接
git remote rm origin
推送给远程仓库
git push -u origin master
拉取远程仓库最新代码
git merge origin master
删除远程仓库的文件夹
git rm --cached -r <文件夹名称>
让远程仓库的代码只有你commit的代码
git push --force origin master
如果你先git add . 看到报错才想起来需要忽略node_modules文件夹,恭喜你,你又踩坑了!
原因是.gitignore不能忽略已经被track的文件或者文件夹,哪怕你add报错了。
碰到这种情况:
git rm -r --cached . #清除缓存
git add .
git commit -m "update .gitignore"
git push -u origin master
git关于分支融合的指令
最近一个面试,问我关于git指令的问题,然后深入说分支呢?
然后今天就测试了一下分支的问题。
新建并切换分支:
git checkout -b dev
它是下面两条命令的简写:
$ git branch dev
$ git checkout dev
切换分支:
git checkout dev
git checkout master
关于分支融合:
在master分支下:
1-2
新建一个分支dev
1-2-3--4-5-6
切换回master分支:修改master分支的文档
1-2-7
这时候想要融合master分支下的文档到dev:
git checkout dev
git merge master
如果报错,说有冲突:
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,
在文档中修改文档;
然后再:
$ git add readme.txt
$ git commit -m "8"
分支dev上的git log 为:
1-2-3-4-5-6-7-8
想要把dev的分支融合到master分支上:
git checkout master
git merge dev
这里参考了https://blog.youkuaiyun.com/zl1zl2zl3/article/details/94019526 的做法
关于git rebase和merge的区别
git rebase 和merge的不同:
同一个场景:
master分支1-2
dev 分支在1的基础上拉的一个分支:
1-3
master分支融合dev分支:merge
git log :1-2-3-4 (4是融合之后形成的提交)
master分支融合dev分支:rebase
git log :1-3-4 (4是融合之后形成的提交)
如果master没有新的提交;1
dev分支 1-2-3
rebase master合并dev
先处理冲突,在git add
git rebase --continue
就会在master分支上后续加上dev分支提交的commit,commit的名称不变但是hash值变了