1.git clone 首次从远程仓库克隆代码
Git clone -b 分支名 git地址 文件夹
如果不指定分支名,就会克隆所有分支。如果指定了,就只下载该分支
如果不指定文件夹,会使用项目名称作为新建文件夹名称
cd 文件夹 之后, git checkout 分支名 ,可以切换分支
2.Git pull 从远程仓库拉取代码
a.拉取规则
git pull 从服务器端拉取最新改动,没有冲突的文件直接覆盖,有冲突的文件会提示有冲突。
b. 拉取之前要做什么
pull之前要先
git add .
git commit -m 'brief'
否则的话源文件里不会插入
<<<<<<< HEAD
//我的代码
=======
//远程代码
>>>>>>> 8c5bb47681622fc81c097b823ee1e829426d0286
这样的代码块。可能是因为改动的代码没有commit到本地库,所以git就没法去比对。
c.差异查看
如果一个文件里,远程添加或删除了某块代码(本地对应的没有动),git pull会直接添加或删除本地代码,不会出现<<<HEAD 修改提示。只有在同一个地方出现了差异,才会有<<<<HEAD 提示
使用git diff 命令一样可以看到以上冲突的代码
git blame 文件名 可以看到该文件详细的更改情况,哪一行是谁改的
d.解决冲突
出现冲突后,我方修改了冲突,然后
git add .
git commit -m 'brief'
这时候再git pull就会提示已经是最新,不用拉取了。如果git push 就会将本地改动提交到远程服务器
3.查看分支之间差异
注意: 分支要进行commit之后才可以用以下命令查看差异
git diff --stat 本地分支 远程分支
git diff --stat master origin/master 本地master分支和远程master分支之间的差异
git diff --stat master dev
4.强制推送
git push --force
当远程比本地新时,可以使用此命令强制推送,但是一定要慎重使用
5.分支管理
https://www.runoob.com/git/git-branch.html
git分支的理解,通俗易懂:
https://www.cnblogs.com/matengfei123/p/8252128.html
6.某文件夹不能push问题的解决
原来该文件夹下也有.git文件夹,删去后,也不行。
到外层含有.git的文件夹下右键 git bash
执行
git rm --cached directory
git add directory
其中 directory 为具体的文件夹,相对于.git所在的文件夹
执行过之后,vs2017的团队资源管理器里就可以看到这个文件夹的更改了。
7. gitignore文件不生效的问题
有的文件加入了gitignore文件,但是仍然在追踪变化,这是因为git一旦追踪一个文件,就会持续追踪,解决办法也是很简单,只需要清空一下 git 本地的缓存提交一次即可。
先清掉 git 缓存
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
8.版本回退
git reset --hard 版本号
查看版本号: git log 或者 git reflog
另外还有一个办法 git revert