1.使用 "git reset --hard 版本号"的方式回退版本号会覆盖从当前版本到回退版本之间的版本号,为避免这种情况,可以用"git revert -n 版本号"指令,具体看:https://blog.csdn.net/L1147484597/article/details/128480953
2.当然在使用 git reset指令回退版本号导致其中一些版本被覆盖之后,那些被覆盖的版本也还是能够恢复的,可以用"git reflog"指令,该指令可以查看所有提交过的版本号,复制要恢复的版本号,然后用git reset指令恢复就行了。具体看:https://blog.csdn.net/weixin_42288182/article/details/95170878
3.当使用git log指令导致git卡住之后,最简单的办法就是输入"q"就能退出了,具体看:https://blog.csdn.net/weixin_63590089/article/details/131153040
4.git重命名当前分支:git branch -m <new_branch_name>
创建并切换到该分支:git checkout -b hotfix1
5.删除分支(未合并):git branch -d branchName
删除分支(已合并):git branch -D branchName
6.删除远程分支:git push origin --delete 分支名
7.git stash:
git satsh可以暂存更改,主要用于你想要切换分支,但是由于当前的修改还没修改完成所以不想提交,此时就可以先暂存修改,要用时再pop出来
git stash pop:取出最近一次暂存的更改,注意它是取出**最近一次暂存的更改**而不是取出**最近一次本分支暂存的更改**,如果最近一次暂存的更改是其它分支的的话那就会把其它分支的更改恢复到本分支来
git stash list:查看所有的暂存,如下图:
图中@后面{}内的数字就是暂存的序号,恢复指定暂存的时候就需要用它。
git stash apply x:取出指定的暂存到本分支,如“git stash apply 1”就是取出上图中序号为1的暂存
git stash drop x:删除指定的暂存,pop之后该暂存并不会自动删除,需要手动drop一下,如“git stash drop 1”就是删除上图中序号为1的暂存
8.git更改本地和远程的分支名称
更改本地分支名称:git branch -m oldName newName
删除原远程分支名称:git push origin :oldName
推送新分支到远端:git push --set-upstream origin newName
9.git pull:从远端更新(拉取)代码到本地
从远端指定分支更新到本地指定分支:git pull origin <远程分支名>:<本地分支名>
从远端指定分支更新到本地当前分支:git pull origin <远程分支名>
从远端直接更新当前分支:git pull
10.从远端获取分支:git fetch,实际上git fetch是从远端拉取所有更新到本地,所以也能获取分支
11.git merge:
将其它分支的某个提交合并到当前分支:`git merge <commit>,如:git merge d2dd0bccf2`
将其它分支的所有更新合并到当前分支:`git merge <branch_name>,如:git merge test2`
12.git合并两次提交:git rebase -i HEAD~2,HEAD~2表示要合并的提交数量,2表示合并最近两个,要合并最近三个则改为3;
然后会弹出一个交互式界面,列出了你要重新基础的提交记录。每个提交记录前面都有一个动作,如 "pick", "squash", "edit"等。找到你想要合并的第二个提交记录,将其前面的动作改为 "squash" 或 "s"。将第一个提交记录的动作保持为 "pick" 或 "p"。
保存并关闭编辑器,Git会自动合并这两次提交。如果有需要,会弹出一个编辑器供你编辑合并后的提交信息。
13.更改最近一次的git提交信息:git commit --amend;这将会打开一个文本编辑器,允许你修改提交信息。修改完提交信息后,保存并关闭编辑器。
14.git往远端推送新分支:git push -u origin <本地分支名称>
15.git diff:比对两个分支和两次提交之间的异同;
比对两次提交:git diff commit1 commit2,如git diff HEAD^ HEAD,其中HEAD^表示上一次提交,也可以用HEAD~1表示,HEAD~n表示之前的第n次提交,假设当前提交为倒数第一次提交的话那么 git diff HEAD~1 HEAD~2 就表示比对倒数第2次和倒数第3次提交。
比对两个分支:
git diff branch1 branch2 --stat //--stat参数,显示两分支简单diff信息
git diff branch1 branch2 //显示两分支详细的diff信息
git diff branch1 branch2 path //显示两分支指定路径下文件的详细diff信息
git diff branch1 branch2 file_name(带路径) //显示两分支指定文件的详细diff信息