前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git使用总结

Git使用总结

作者头像
爱撒谎的男孩
发布2019-12-31 15:11:21
3780
发布2019-12-31 15:11:21
举报
文章被收录于专栏:码猿技术专栏

文章目录

1. Git使用总结

1.1. 开发策略

1.2. 解决冲突

1.2.1. 冲突产生

1.2.2. 冲突解决

1.3. 分支管理策略

1.4. Bug分支(git stash)

1.5. 添加公钥到Github中

1.6. 远程仓库的使用

1.6.1. 常用命令

1.6.2. 远程分支

1.6.2.1. 推送分支

1.6.2.2. 抓取分支

1.6.2.3. 总结

1.6.3. 标签的使用

1.6.3.1. 创建标签

1.6.3.2. 操作标签

1.6.3.3. 删除远程标签

1.7. 添加所有文件

Git使用总结

开发策略

  • 在实际开发的时候一定要在分支上开发,修复问题,开发完成之后再合并到主分支(master)上,这样可以保证在不损坏主分支的情况下删除或者撤销内容

解决冲突

冲突产生

  • 假设现在有一个master分支,其中有一个提交之后的文件demo.txt,那么我们使用git checkout -b dev创建一个新的分支并且切换到这个dev分支
    • echo chenjiabing >> demo.txt:在文件的末尾追加一个文件
    • git add file.txt : 添加到暂存区
    • git commit -m "this is at dev:提交
    • git checkout master : 切换到主分支
    • echo 陈加兵 >>demo.txt : 切换到主分支,在主分支中在文件的末尾追加陈加兵(这里一定要在文件末尾,因为在dev分支中修改的位置就是文件末尾)
    • git add demo.txt : 添加到暂存区
    • git commit -m "this is at master" : 提交
    • git merge dev :快速合并分支dev到master分支上,那么现在将会出现版本冲突的问题,不能合并成功。此时的demo.txt的文件内容为:

    Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. Git tracks changes of files. <<<<<<< HEAD 陈加兵 ======= chenjiabing >>>>>>> dev

冲突解决

  • 此时在master分支中修改demo.txt中的内容,直到满意为止即可
    • git add demo.txt : 添加
    • git commit -m "this is finally" :提交

分支管理策略

  • 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
  • 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
  • git merge --no-ff -m "merge with no-ff" dev

Bug分支(git stash)

  • Bug分支
  • git stash 将当前的工作现场存储起来
  • git stash list : 列出所有的工作现场
  • git stash pop : 回复当前分支的工作现场,并且还删除了stash中的内容

添加公钥到Github中

  • 如果你没有在git中配置邮箱和用户名,那么需要先配置
    • git config --global user.name "CSDN id"
    • git config --global user.email "your email"
  • cd ~/.ssh: 进入主目录的ssh文件夹中,查看是否已经存在秘钥文件id_rusa.pub,如果不存在,那么需要生成秘钥
  • ssh-keygen -t rsa -C "your email" : 生成公钥
  • 此时在~/.ssh文件夹下就有了id_rusa.pub文件夹,那么将其中的内容全部复制到github中的SSH中
  • 注意: 添加远程仓库的时候一定要使用ssh形式,否则将会要求输入密码
    • git remote add git@github.com:chenjiabing666/LearnGit.git

远程仓库的使用

常用命令

  • git clone git@github.com:chenjiabing666/LearnGit.git :直接clone远程仓库到本地仓库,此时的本地仓库也有了push的权利,不过只能看到一个主分支master ,但是这个远程仓库还有dev分支和Bug分支
    • git checkout -b dev orgin/dev : 直接在本地创建一个分支dev并且和远程仓库的分支关联起来,那么就可以获取远程dev分支上的文件了
  • git remote : 查看远程仓库的名称,这个只显示名称,使用git clone的方法关联远程仓库,默认的名字为orgin
  • git remote -v : 显示远程仓库的名称和链接
  • git remote add shortName url : 添加一个新的远程仓库
    • git remote add learn git@github.com:chenjiabing666/LearnGit.git
  • git remote rename 旧名称 新名称 : 修改远程仓库的名称
    • git remote rename orgin demo
  • git remote remove 名称 : 删除远程仓库
    • git remote remvoe orgin
  • git push 仓库名称 [分支名称] : 将提交的文件推送到远程仓库
    • git push orgin : 将文件推送到远程仓库的主分支master
    • 假设我们新建了一个dev分支 使用命令git checkout -b dev ,那么我们需要将这个dev分支推送到远程仓库中的dev分支上,使用git push orgin dev需要注意的是必须在当前的本地仓库的dev分支才能推送,并且这个本地仓库的名称要和远程仓库一样
  • git pull : 从远程仓库中拉取本地仓库分支中没有的文件并且合并到当前分支
    • 假设小明在master分支上提交了一个file.txt文件,但是小李的本地仓库中并没有file.txt这个文件,此时小李就需要从远程仓库中把这个文件拉取到自己的本地仓库的master分支上
      • git checkout master : 切换到主分支
      • git pull : 拉取远程仓库的最新文件

远程分支

推送分支
  • git push 名称 分支名称 : 推送分支到远程仓库中
    • git push orgin Bug : 推送本地的分支Bug推送到远程仓库中,那么仓库中默认的分支名就是Bug
  • 对于一些需要合作完成的分支需要推送到远程仓库,并不是所有的分支都需要推送到远程仓库的
抓取分支
  • 在多人协作完成项目的时候,都需要向主分支masterdev分支上面推送各自的修改
  • 我们使用git clone一个远程仓库的时候,默认情况下只能看到master分支,我们可以使用git branch查看分支。此时我们需要在dev分支上面操作,那么就必须将远程仓库中的dev分支创建到本地,我们可以使用git checkout -b dev orgin/dev ,那么远程仓库的中的dev分支就创建到本地了,那么此时我们就可以在dev分支上面操作了
    • git push orgin dev : 修改完成之后推送到远程仓库中
  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
    • 如果远程仓库中有一个demo分支,本地也有一个demo分支,但是这个本地的demo分支并不是使用git checkout -b demo orgin/demo检出的,而是直接创建的,那么我们此时需要使用git pull拉取远程仓库中demo分支中的文件到本地的demo分支就会发现出现错误,因为没有与远程的demo分支关联,此时我们就需要使用git branch --set-upstream demo orgin/demo
总结

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

标签的使用

创建标签
  • git tag v1.0 : 在当前分支上添加一个标签
  • git tag -a v1.0 -m "备注信息" : 添加一个标签并且备注信息
  • git tag : 列出当前分支上面的所有标签
操作标签
  • git tag -d v1.0 : 删除指定的标签
  • git push origin v1.0 : 推送标签到远程仓库,因为标签的创建不会自动推送到远程,必须手动推送
  • git push orgin --tags : 一次性推送全部的标签
删除远程标签
  1. 先删除本地标签 : git tag -d v1.0
  2. 使用push删除远程标签 : git push orgin :refs/tags/v1.0

添加所有文件

  • git add -A
  • 之后直接提交即可 : git commit -m ""
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Git使用总结
    • 开发策略
      • 解决冲突
        • 冲突产生
        • 冲突解决
      • 分支管理策略
        • Bug分支(git stash)
          • 添加公钥到Github中
            • 远程仓库的使用
              • 常用命令
              • 远程分支
              • 标签的使用
            • 添加所有文件
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档