使用git命令使用开发,创建,删除,合并与解决冲突

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

所以,团队合作的分支看起来就像这样:

在这里插入图片描述

  1. 初始化代码仓
    git init
  2. 查看分支
    // 下面带星号的为当前本地分支
     git branch
    * dev
      master
    
    // 查看远程分支
    git branch -a
    * dev
      master
    
    输入q退出查看
    
  3. 创建分支,切换分之,并把当前分支推送到远程仓库
    把dev分支合并到当前分支上:  git merge dev
    
    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
    而fast forward合并就看不出来曾经做过合并。
    git merge --no-ff dev
    

  4. 合并分支(推荐使用第二种,以当前情况而定)
    当使用合并命令后出现下面几行错误说明合并发生了冲突(readme.txt表示冲突的文件,这里只是举例)
    
    Auto-merging readme.txt
    CONFLICT (content): Merge conflict in readme.txt
    Automatic merge failed; fix conflicts and then commit the result.
    
    解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
    这个命令告诉我们冲突的文件: git status
    
    因此,多人协作的工作模式通常是这样:
    
    首先,可以试图用 git push origin name 推送自己的修改;
    
    如果推送失败,则因为远程分支比你的本地更新,需要先用 git pull 试图合并;
    
    git无法pull仓库refusing to merge unrelated histories
    合并pull两个不同的项目:git pull origin master --allow-unrelated-histories
    如果合并有冲突,则解决冲突,并在本地提交;
    
    没有冲突或者解决掉冲突后,再用 git push origin name 推送就能成功!
    
    如果 git pull 提示 no tracking information,则说明本地分支和远程分支的链接关系没有创建
    用命令 git branch --set-upstream-to name origin/name
    
    

  5. 合并解决冲突(一般只有多人共同开发一个项目才会出现这种情况)
    删除本地的bug_xzx分支
    git branch -d name
    
    删除远程的bug_xzx分支
    git push origin --delete name
    git push origin :name  //也可以直接推送一个空分支上去
    
    

  6. 获取远程仓库最新代码
    git pull
    

 

Git基本常用命令如下:

  mkdir:         XX (创建一个空目录 XX指目录名)

  pwd:          显示当前目录的路径。

  git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

  git add XX       把xx文件添加到暂存区去。

  git commit –m “XX”  提交文件 –m 后面的是注释。

  git status        查看仓库状态

  git diff  XX      查看XX文件修改了那些内容

  git log          查看历史记录

  git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一个版本

  (如果想回退到100个版本,使用git reset –hard HEAD~100 )

  cat XX         查看XX文件内容

  git reflog       查看历史记录的版本号id

  git checkout -- XX  把XX文件在工作区的修改全部撤销。

  git rm XX          删除XX文件

  git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

  git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

  git clone https://github.com/tugenhua0707/testgit  从远程库中克隆

  git checkout –b dev  创建dev分支 并切换到dev分支上

  git branch  查看当前所有的分支

  git checkout master 切换回master分支

  git merge dev    在当前的分支上合并dev分支

  git branch –d dev 删除dev分支

  git branch name  创建分支

  git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

  git stash list 查看所有被隐藏的文件列表

  git stash apply 恢复被隐藏的文件,但是内容不删除

  git stash drop 删除文件

  git stash pop 恢复文件的同时 也删除文件

  git remote 查看远程库的信息

  git remote –v 查看远程库的详细信息

  git push origin master  Git会把master分支推送到远程库对应的远程分支上
 

 本文参考廖雪峰的git教程而写,用于笔记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值