1、branch/switch/checkout
// 创建分支的三种方式
git clone git@192.168.2.120:terminal/GW-ECU.git -b develop
git clone git@192.168.2.120:terminal/GW-ECU.git
git switch develop
git switch remotes/origin/develop // 错误!!!
git clone git@192.168.2.120:terminal/GW-ECU.git
git checkout -b remotes/origin/develop
git checkout remotes/origin/develop // 错误!!!
2、merge
// 开发分支dev上的代码达到上线的标准后,要合并到master分支
git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master
// 当master代码改动了,需要更新开发分支dev上的代码
git checkout master
git pull
git checkout dev
git merge master
git push -u origin dev
3、clean
// 删除 untracked files
git clean -f
// 连untracked的目录也一起删掉
git clean -fd
// 连gitignore的untrack文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
// 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd
.gitignore
.gitignore规则不生效
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:
$ git add App.class
The following paths are ignored by one of your .gitignore files:
App.class
Use -f if you really want to add them.
如果你确实想添加该文件,可以用-f强制添加到Git:
$ git add -f App.class
或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:
$ git check-ignore -v App.class
.gitignore:3:*.class App.class
Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。