常用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