Git使用总结

作者: 爱撒谎的男孩 | 来源:发表于2018-10-07 22:34 被阅读2次

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 ""

相关文章

  • git的使用总结

    git的使用总结

  • git使用总结

    git使用总结 git --version //查看所安装的git的版本 git config --global ...

  • GitHub创建远程仓库及连接

    总结:使用的git命令 git init git remote add origin (远程仓库地址) git r...

  • git 的使用

    有关git的使用总结一下,留着使用 git、svn区别 使用过程 svn基本使用过程 git基本使用过程 管理模式...

  • Git命令语法汇总

    本文是在学习廖雪峰Git教程后对常用Git命令的使用总结,仅供在使用Git时方便查找。 一、Git简介 Git是当...

  • git使用

    Git安装和使用 Git使用总结 如何将本地项目上传到Github Windows中git bash完全可以替代原...

  • git使用---安装,提交,回退,修改,分支,标签等

    下面是对git的各种使用及命令的基础使用,来自廖雪峰老师的git教程,这个收录下,作为git的使用总结。 gith...

  • 小猪的Git使用总结

    小猪的Git使用总结 目录 [TOC] 概述: 接触Git也些年头了,对于Git的使用也算是略有心得,想着出于自己...

  • Git命令行使用指南

    题引: 既为了总结自己在Git使用上的实践经验,也为了给有同样Git使用需求的伙伴们提供借鉴。 本文Git使用方式...

  • Git原理及基本命令

    最近工作经常使用Git,本文重点总结归纳一下git经常使用的命令和用法,以及对git基本原理的理解。 一、Git安...

网友评论

    本文标题:Git使用总结

    本文链接:https://www.haomeiwen.com/subject/zdbraftx.html