Git远程仓库分支合并,撤销git add,commit,push...

本文详细介绍Git的高级操作,包括远程仓库的获取与管理、分支的合并、错误操作的撤销及分支的推送与删除等,帮助读者掌握Git的核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Git远程仓库操作

  1.1 获取远程仓库的代码
  1.1.1 直接获取到远端的代码最简单的基本操作 
  #git  clone  <仓库的URL> 

  1.1.2 拉取远程代码,并给URL取别名,方便以后操作
           
  #git  remote  add   <你自己对仓库URL的简称 short_name>   <URL> 
           
  以后对项目URL的操作,可以使用这个别名进行,亦即效果同git clone 同时简化了以后可能用URL的地方,比如
           
  #git   fetch  <URL> 可以简写成
           
  #git   fetch  short_name 。

     
  1.1.3 可以对添加的仓库进行重命名操作。
           
  #git  remote  rename  short_name  short_name2

     
  1.1.4 可以进行删除自己的简称,这样并不会删除远程的代码,但是会删除本地的代码信息 
           
  #git   remote rm short_name
    
  重新拉取远程代码按照以下步执行(也可以直接git  clone <URL>):
           
  #git     log    -1  //查看最近一次提交,复制提交的哈希校验码,假定为abc
  #git    reset   --hard   abc
  #git    pull


1.2 分支合并(针对本地)
    
  假如有两个开发者,bob 和 jack,bob是发起者,项目路径为/home/bob/proj,此时如果jack想要加入bob的开发项目,Jack就可以 进入自己的工作目录/home/jack/,直接通过下面的命令复制到自己的目录下的myproj文件夹中。

    
  #git   clone  /home/bob/proj    myproj  

    
  jack针对代码进行开发。。。

    
  #git   add  .
  #git  commit   -m "我是jack,功能开发完毕"

    
  这时候Jack告诉bob已经完成了开发任务并提交到了Jack的本地仓库,那么bob就可以合并Jack的分支了。

    
  bob合并操作分为以下两种:
  a) .bob非常信任Jack的技术,直接合并本地代码:


  #git pull  /home/jack/myproj 


  2. bob想看一下Jack修改了什么,先把Jack的修改拉取到自己的一个分支,然后确认无误后合并:

       
  取出jack的代码,然后放在master工作目录下
       
  #git   fetch   /home/jack/myproj  master:jackworks  

       
  查看Jack修改的内容
       
  #git  whatchanged  -p  master..jackworks

       
  确认无误后,合并分支
       
  #git    pull   .   jackworks.

       
  删除本地的jackwork分支
       
  #git    branch  -D    jackworks

       
  后续Jack如果需要继续开发,只需要在自己目录下

  #git   pull //不需要加任何参数


1.3 撤销操作
    
  首先需要明确自己想撤销什么,git的文件存在以下4个位置
  
a).本地

b).暂存区(git add xxx.c操作就是把xxx.c放在了暂存区)

c).本地仓库(git commit 操作就是把暂存区的文件提交到了本地仓库)
  
d).远程仓库(git push 操作之后,文件就被推送到了远程仓库)

    
  1.3.1 撤销git add xxx.c 操作
  如果你想撤销 git add这个操作,即删除添加到暂存区的文件,但是保留本地的文件
                
  #git  reset  HEAD  helloworld.c 
                
  #git  reset  HEAD  *.c   不推荐这样,因为可能会撤销别人提交的工作    
  
  1.3.2 撤销git commit 操作
    
  撤销本地仓库(撤销git commit操作)的内容,可以使用
                
  #git  reset --soft  HEAD~1
                
  这样代码就回到了git add 之后的操作,也就是放在了暂存区,尚未进行git commit
   
  1.3.3 同时撤销git add 和 git commit
,保留本地开发的文件                
  如果你想同时撤销暂存(git add)和本地仓库(git commit),可以使用下面的命令
                
  #git  reset  --mixed  HEAD~1
                
  这个操作之后,代码回到了未暂存,未提交的状态。
                 

  1.3.4 对git reset --hard操作的撤销
                
  如果你已经执行了git  reset  --hard, 将commit从分支中去除了,还是可以恢复的
          
  #git  reflog   找到对应的commit的哈希值
          
  #git  checkout -b <branch_name>  <hash-id> 即可恢复
          
  在Git 中,reset掉的commit不会立刻被清除,大概会保留90天
          
  如果从未进行过commit操作就做了git reset --hard <hash-id> 无法找回!!!

    
  
  1.3.5撤销git push操作
                
  1.3.5.1 如果你想撤销一个已经提交到远程仓库的commit,可以调用git revert来在本地撤销
                
  然后push到远程分支上。
                
  #git  reflog  得到待撤销的commit的hash值
                
  #git  revert  <hash-id>
               
  #git  push    推送到远程
                
                
  例如不小心把代码git push到远程分支了,想把远程代码“回滚”到push之前的样子
                
  可以采用上面的操作。
                
                

  1.3.5.2 回滚之后找回已经开发的代码
                
  回滚之后本地代码也会变成远程恢复之后的样子,不过不用担心,之前的push也被git记录
                
  下来了,此时只需要把刚刚revert操作的哈希值再次进行
                
  #git revert  <hash-id> 
                
  本地代码就又回来了,也就是说,我们撤销了一次远程的提交(git push),并且保留
                
  了我们本地的开发代码。

1.4 本地新建分支并推送到远程
                
  #git  checkout -b  branch_name 
                
  #git  push  --set-upstream origin  <branch_name>        
                
  创建分支仅仅是在本地创建了一个分支,并没有服务器端与之对应,需要使用上面的命令进行提交。        


1.5. 删除一个分支并提交到远程
                
  #git push --delete  origin <branch_namee>
                

1.6. 合并分支到master
                
  #git  checkout  master
                
  #git  merge   <branch_name>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值