不常用的git命令

git fetch

git fetch [remote_repo] :这个是将remote repo所有的数据:包括更新的文件,新增/减的分支,tag,等等,全部下载到本地的local repo。但是,不会做merge。也就是说,master分支数据可能是旧的,但是origin/master上的数据已经是新的了。可以进一步运行

?
1
2
git checkout master
git merge origin /master

来将两个分支进行merge。或者更好使用git push来进行merge(前提是master确实是origin/master的tracking branch)

git pull

git pull [remote_repo branch_name]:这个命令直接从指定remote_repo的指定branch拉取相应的数据。并将远程branch的更新和本地的tracking branch做merge。

注意。这时候,并不会把这个branch之外的数据拉下来。比如,如果远程的另一个branch有更新,或者增加了一个新的branch,这个命令并不会把这些数据拉下来。

如果直接执行git pull [remote_repo],则会将所有数据拉下来,包括其它分支的更新,包括新增的分支。同时还会将当前branch与它tracking的branch做merge。

git push

git push [remote_repo local branch:remote branch]。缺省情况下,将当前branch的改动push到缺省repo中它track的branch。也可以加repo和branch,将当前分支的数据push到任何一个repo的任何一个branch


删除远程分支

如果需要删除一个远程分支,则需要git push origin :b1根据 git push的定义,就是把空push到远程的b1 branch。也就是删除了。

但是,如果别人已经在b1删除之前执行了fetch或者pull,在本地有了b1这个branch,再次执行fetch或者pull并不会删除这个branch。运行git branch -a也不能看出这个branch被删除了。这时候需要运行

?
1
2
3
4
5
6
7
8
9
10
11
12
$ git remote show origin
* remote origin
   Fetch URL: git@github.com:xxx /xxx .git
   Push  URL: git@github.com:xxx /xxx .git
   HEAD branch: master
   Remote branches:
     master                 tracked
     refs /remotes/origin/b1  stale (use 'git remote prune'  to remove)
   Local branch configured for  'git pull' :
     master merges with remote master
   Local ref configured for  'git push' :
     master pushes to master (up to date )

这时候能够看到b1是stale的,可以使用git remote prune origin将它从本地repo也去掉。



git remote prune

说明:remote上的一个分支被其他人删除后,需要更新本地的分支列表 
使用举例:

1
2
3
4
5
6
7
8
9
10
11
$ git branch -a
* master
  remotes/origin/master
  remotes/origin/other
$ git remote prune origin
Pruning origin
URL: git@github.com:fsword/my_project.git
 * [pruned] origin/other
$ git branch -a
* master
  remotes/origin/master
      
      


git checkout [COMMIT_ID] [FILE_PATH]

说明:部分恢复。当我们修改很多次之后,可能想恢复之前某个commit时的某个或者某些文件,本命令就提供了这个支持。 使用举例:

1
git checkout acfc7ea462fa6f4425be251c2076d10a5fbde0ba images/old_way_new_way.*

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值