一些比较常用的git命令

常用git命令

文章目录

1、新建

新建分支:

git checkout –b XXX

会在本地新建一个分支。

查看所在分支

git branch

查看当前状态

git status

删除本地分支

 // D是强制删除
git branch -D Test_Branch

2、commit相关

压缩合并commit

比如合并前两次:

git rebase -i HEAD~3

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^ , 上上一个版本就是HEAD^^ ,当然往上100个版本写100个^ 比较容易数不过来,所以写成HEAD~100

进入编辑模式,第一列为操作指令,第二列为commit号,第三列为commit信息。

pick:保留该commit;
reword:保留该commit但是修改commit信息;
edit:保留该commit但是要修改commit内容;
squash:将该commit和前一个commit合并;
fixup:将该commit和前一个commit合并,并不保留该commit的commit信息;
exec:执行shell命令;
drop:删除该commit。

把第一行以下的pick改成s,保存退出。在弹出的界面里编辑修改后的信息,保存退出,就可以看到信息合并了。然后需要同步到远程仓库

git push -f

建议强制push之前确定一下到底还有没有问题==
具体可以看一下blog
rebase是个挺有用的命令,可以看下blog2

修改commit

可以修改最后一次提交的信息

git commit --amend 

对于历史commit的修改需要用到rebase:
比如修改当前版本倒数第三次的信息:

git rebase -i HEAD~3

会出现大概类似这样的内容:

pick:*******
pick:*******
pick:*******

最下面是最新的一次提交,需要修改哪一次,就把pick改成edit,然后保存退出。
这样通过git log可以发现修改的这条commit变成了最新的一次提交,就可以用ammend来修改了;
改完之后把顺序改回来

git rebase --continue

不commit下切换分支

不想提交但是想切换分支,用stash: https://blog.csdn.net/hxdafei1989/article/details/64921521

撤回commit

git reset --soft HEAD^

这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,代码仍然保留。

rebase之后撤销

git reflog
git reset --hard XXX

3、更新相关

更新本地

git pull --rebase

强制用远程覆盖本地

git fetch --all
git reset --hard origin/master
git pull

更新远程

git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>
如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:

git push --force origin master

删除远程的分支

git push origin --delete master

rebase代码

最好经常rebase https://blog.csdn.net/ManyPeng/article/details/81095744

git checkout master
git pull origin master
git checkout XXX
git rebase msater
git push --force-with-lease origin XXX

撤回手滑提交的更新

git log
git reset --hard xxxx
git push -f

具体可见 blog

解决冲突

https://blog.csdn.net/qq_37708668/article/details/88813266

上一篇:git rebase后不能push问题


下一篇:工作中最常用的git命令