【Git】详细介绍git每个命令与总结

本文详细介绍了Git的push命令用法,包括如何推送本地分支到远程,如何处理追踪关系,以及如何处理冲突和推送标签。还涵盖了git的其他常用命令,如log、tag、stash、remote、commit、branch、checkout、rebase等,以及解决git操作中遇到的问题,如文件被占用的处理。文章旨在帮助开发者更好地理解和掌握Git操作。
摘要由CSDN通过智能技术生成

git push 命令用于将本地分支的更新,推送到远程主机。它的格式与 git pull 命令相仿。

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

如果省略远程分支名,则表示将本地分支推送与之存在“追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

git push origin master

上面命令表示,将本地的 master 分支推送到 origin 主机的 master 分支。如果后者不存在,则会被新建。

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。

git push origin :master

等同于

git push origin --delete master

上面命令表示删除 origin 主机的 master 分支。

如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。

git push origin

上面命令表示,将当前分支推送到 origin 主机的对应分支。

如果当前分支只有一个追踪分支,那么主机名都可以省略。

git push

如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用 git push 。

git push -u origin master

上面的命令将本地 master 分支推送到 origin 主机,同时指定 origin 为默认主机,后面就可以不加任何参数使用 git push 了。

不带任何参数的 git push ,默认只推送当前分支,这叫做 simple 方式。此外,还有一种 matching 方式,会推送所有有对应的远程分支的本地分支。

git 2.0 版本之前,默认采用 matching 方式,现在改为默认采用 simple 方式,如果要修改这个设置,可以采用 git config 命令。

git config --global push.default matching

或者

git config --global push.default simple

还有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用 -all 选项。

git push --all origin

上面命令表示,将所有本地分支都推送到 origin 主机。

如果远程主机的版本比本地版本更新,推送时 git 会报错,要求先在本地做 git pull 合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用 -force 选项。

git push --force origin

上面命令使用-force选项,结果导致在远程主机产生一个“非直进式”的合并(non-fast-forward merge)。除非你很确定要这样做,否则应该尽量避免使用 -force 选项。

最后,git push 不会推送标签(tag),除非使用 -tags 选项。

git push origin --tags


log


git log 命令可以查看历史记录,git log 命令显示从最近到最远的提交日志;

如果嫌输出信息太多,看得眼花缭乱的,可以试试 git log --pretty=oneline 。我们可以看到当前版本以及之前的版本日志以及版本号。

git log --graph 命令可以看到分支合并图。

或者两个参数一起用:

git log --graph --pretty=oneline

git log --graph --pretty=oneline --abbrev-commit

首先,git 必须知道当前版本是哪个版本,在 git 中,用 HEAD 表示当前版本,上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ , 当然往上100个版本写100个 ^ 比较容易数不过来,所以写成 HEAD~100

现在,我们要把当前版本回退到上一个版本,就可以使用 git reset 命令:

git reset --hard HEAD^

当你回退到了某个版本后,git log 只能显示此版本及之前的版本的日志,之后的版本日志就看不到了,但是,我们想恢复到之后教新的版本怎么办?

Git 提供了一个命令 git reflog 用来记录你的每一次命令。


tag


查看标签(用来标记标志性的稳定版本信息)

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

相比于 commit 的版本号(40位16进制),标签号则要好使的多。

所以,tag 就是一个让人容易记住的有意义的名字,它跟某个 commit 绑定在一起。

git tag [tag name]

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值