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

posted @ 2023-02-05 21:59  小千北同学超爱写代码  阅读(45)  评论(0编辑  收藏  举报