git 常用命令

git branch

git branch -r, 查看远端库的分支情况
git branch -a, 查看所有分支
git branch -vv, 查看当前本地分支与远程分支的映射关系

git branch, 新建本地分支

  • $ git checkout -b dev origin/dev
    # 远程分支dev已存在时,用此命令建立本地分支,同时设置tracking映射。

git branch -m | -M old_branch new_branch,重命名分支,如new_branch已存在,则用-M强制重命名。
git branch -d | -D branch_name, 删除branch_name分支
git branch -d -r branch_name, 删除远程branch_name分支

git branch –set-upstream-to=origin/dev [dev],映射本地dev分支与远程origin/dev分支(如果failed,则先用git pull更新本地的远程分支信息)
git branch -u origin/dev [dev],同上

git branch [–set-upstream | –track | –no-track] [-l] [-f] branch_name [start-point]

git branch –unset-upstream [branch_name],撤销本地分支与远程分支的映射关系


git remote

git remote,查看远程分支(简略)
git remote -v,查看远程分支(详细)


git push

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

git push origin DEV:dev,将本地DEV分支push到远程主机origin的dev分支上。
git push origin [空]:<远程分支名>,默认删除远程分支,等价于 git branch -d -r <远程分支名>。
注:即使没有使用git pull更新本地的远程分支,都有效

  • git push origin –delete DEV,删除远程分支DEV
    等价于 git push origin [空]:DEV,以及 git branch -d -r DEV

  • git push origin HEAD:DEV, 将当前本地分支推送到远程origin的DEV分支(方便易用)

    示例

  • $ git push origin master
    将本地master分支推送到origin主机的master分支。如果master不存在,则会被新建。

  • $ git push origin :master
    $ git push origin --delete master

    删除origin主机的master分支

  • $ git push -u origin master
    将本地的master分支推送到origin主机,同时(-u)指定origin为默认主机,后面就可以不加任何参数使用git push了,即 git push (本地与远程分支不同名时,不可用)。

  • git push
    不带任何参数的git push,默认只推送当前分支,这叫做simple方式。
    注:单个本地分支可以track多个远程分支

  • $ git config --global push.default matching
    $ git config --global push.default simple

    Git 2.0版本之前,默认采用matching方法,会推送所有有对应的远程分支的本地分支。
    Git 2.0版本之后,默认采用simple方式,只推送当前分支至同名远程分支(即push your code branch by branch)。

  • $ git push origin HEAD
    将当前分支推送到远程的同名的简单方法

  • $ git push origin HEAD:master
    将当前分支推送到源存储库中的远程引用匹配主机。 这种形式方便推送当前分支,而不考虑其本地名称。


git pull

取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂。
默认模式下,git pull是git fetch后跟git merge FETCH_HEAD的缩写。
(Fetch from and integrate with another repository or a local branch)

语法
  • $ git pull <远程主机名> <远程分支名>:<本地分支名>
    <本地分支名>可省略,如为当前分支。

  • $ git branch --set-upstream master origin/next
    上面命令指定本地master分支追踪origin/next分支。

  • $ git pull origin
    如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
    上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。

  • $ git pull
    如果当前分支只有一个追踪分支,连远程主机名都可以省略。
    上面命令表示,当前分支自动与唯一一个追踪分支进行合并。

  • $ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
    如果合并需要采用rebase模式,可以使用–rebase选项。

注:在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。


git rebase

git rebase 之后再推送(push),会改变log曲线,按照各个协作者推送的顺序来单线排列。

  • rebase操作可以把本地未push的分叉提交历史整理成直线。
  • rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

git tag

  • $ git tag tag_name [commit_id]
    给指定commit打标签; 默认标签打在HEAD最新提交的commit上。

  • $ git tag -a tag_name -m "version xx released" commit_id
    创建带有说明的标签,用-a指定标签名,-m指定说明文字。

  • $ git tag
    查看tag列表(简略)。

  • $ git show tag_name
    查看某个tag的详细说明信息。

  • $ git tag -d tag_name
    删除某个标签(创建的标签只本地存储,不自动远程推送;打错的标签可在本地安全删除)。

  • $ git push origin tag_name
    单独推送某个标签。

  • $ git push origin --tags
    一次性推送全部尚未推送到远程的本地标签。

如果某个标签已经推送到远程,删除步骤如下:
  1. $ git tag -d tag_name, 先从本地删除。
  2. $ git push origin :refs/tags/tag_name,用push删除远程标签(refs/tags/固定)。

注:标签总是和某个commit挂钩。如果此tag关联的commit既出现在master分支,又出现在dev分支,则两个分支上都可以看到这个标签。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值