- git merge 和 git rebase 区别
1、在没有冲突的时候
git merge --no-ff 自动生成一个commit
2、在有冲突的时候
git merge 合并分支,解决完冲突后执行
git add .
git commit -m 'fix conflict' 会产生一个commit
使用 rebase 合并分支,解决完冲突,执行
git add .
git rebase --continue 不会产生额外的commit
好处是‘干净’,分支上不会有无意义的解决冲突的commit.
git clone --branch [tags标签] [git地址]
git checkout tagname
1、未使用git add 缓存代码,放弃所有文件修改
git checkout .
未使用git add 缓存代码,放弃某个文件修改,使用
git checkout --filename
2、已使用git add 缓存代码,未使用git commit
git reset HEAD filename
放弃所有文件修改 git reset HEAD
git reset HEAD
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了第一步1. 未使用git add 缓存代码,继续使用用git checkout --filename,就可以放弃本地修改
3、已经用 git commit 提交了代码
使用 git reset --hard HEAD^ 来回退到上一次commit的状态
git reset --hard HEAD^
或者回退到任意版本git reset --hard commit id ,使用git log命令查看git提交历史和commit id
git reset --hard commit id