git常用命令
一、撤回push命令:
1.撤回push:
git log #查看提交记录,获取错误版本号A的前一个版本号B(我们认为想要回退到B) git reset –-soft 版本号B #回退到版本号B git push -f #强制提交当前代码,即B的代码 git log #此时最新的提交就只有版本号B的代码(新的版本号)而没有版本号A了 git status #此时发现还有一些已经add 但还没有commit的内容,即A的代码内容,现在可以操作一些修改代码的工作,然后继续git commit -m "提交内容" git push
2.撤回commit和撤回add:
git reset 命令分为两种: git reset --soft 与 git reset --hard ,区别是:
git reset --soft HEAD~1 #表示只是改变了HEAD的指向,工作空间代码不会变化(也就是撤回了commit,但是新代码依然是已add但无commit的状态)
git reset --hard HEAD~1 #直接更改工作空间的代码,不仅HEAD 指向变化了,代码也回到了那个版本时的代码。(也就是说新代码还没有add,表示撤回了add)
要理解上述这段话要深一步理解git add 和git commit:
git add #把修改的代码提交到工作空间
git commit #
git reset --hard HEAD~1 #改动工作空间的代码,撤回commit且撤销add git reset --soft HEAD~1 #不改动工作空间的代码,仅撤回commit的方法一 git commit amend #仅撤回commit的方法二,然后会进入vim模式,修改后:wq即可
https://blog.csdn.net/w_p_wyd/article/details/126028094
https://blog.csdn.net/qq_45503196/article/details/126089133
二、合并代码
(合master代码/两个代码分支的合并)
1.合master代码
方法一:直接merge,不推荐
git checkout master # 切换本地分支为master
git pull # 更新本地分支master代码为远程最新代码
git checkout [自己的分支名] # 切换到自己的分支
git merge master # 合并master到自己的分支,可能会出现冲突 需要修改
git push # 提送自己本地分支到自己的远程分支
方法二:变基,rebase的方法,推荐 git checkout master git pull origin master #在这里用git fetch origin master 也可以 git checkout [自己的分支名] # 切换到自己的分支 git rebase master #变基, 合并后自己的分支为最新的代码 git status #可能会有冲突 查看状态 git diff #查看具体冲突 一个个解决 以matser为准 git rebase --continue #解决冲突后继续continue git push # 提送自己本地分支到自己的远程分支
git fetch和git pull的区别:git pull=git fetch+git merge
git fetch <远程主机名>:这个命令将远程的更新全部取回本地,比如git fetch origin
git
2.两个代码的合并
https://blog.csdn.net/luanxiyuan/article/details/104479554
\
三、git add -u 和git add .的区别
代码冲突时:
https://blog.csdn.net/Jackson_Wen/article/details/125429604