文章目录
GIT使用笔记
##GIT合并时二进制文件冲突
GIT在合并时如果出现冲突,如果是普通的文本文件,git会在文件冲突的地方标注出来,开发者可以对冲突代码进行编辑,解决冲突后commit即可,但如果是二进制文件发生了冲突,git是无法标注冲突的,这时候只能从参与合并的两个分支中选择一个版本保留,舍弃掉另一个
git checkout FILE --ours [ --theirs ]
–ours 表示检出当前分支,即保存当前分支的改动,丢弃另外一个分支的改动.
–theirs 表示检出另外分支, 即保存另外一个分支的改动,丢弃当前分支的改动.
举个栗子:
有分支A和B, 当前我们在分支A上, 需要把分支B合并到分支A, HashMap.c文件发生冲突了.
git checkout HashMap.c –ours 表示冲突的地方采用A分支上的修改,丢弃B分支上的修改.
git checkout HashMap.c –theirs 表示冲突的地方采用B分支上的修改,丢弃A分支上的修改.
解决完冲突后,就可以像往常一样 git add git commit了.
##取消已经track的文件的版本控制
有些时候需要忽略对某些文件的版本控制,只需要在.gitignore文件中记录下该文件即可,但是对于已经被添加到版本控制中的文件,.gitignore文件不会对已经track的文件生效,此时需要移除掉该文件的版本控制,让后将该文件加入到.gitignore文件中commit提交
移除对某个文件的版本控制
git rm --cached filename
移除某个文件夹下的所有文件的版本控制
git rm -r --cached foldername
移除掉版本控制后一定要将相应文件加入到.gitignore文件中,不然文件又会被重新add
##git reset的三个参数
git reset --hard是我经常使用的一个命令,不过对于–hard参数的意义不是很明白,后来查了查资料,发现还有两个参数–soft,–mixed,所以这里就简单描述一下各个参数的意义
撤回到已经改动且add,但是没有commit的状态
git reset --soft
撤回到已经改动但是没有add,也没有commit的状态
git reset --mixed
完全撤回,消除掉当前所有的改动和add,完全撤回到时的状态
git reset --hard