美文网首页
Git 基本操作集合

Git 基本操作集合

作者: JacobLi | 来源:发表于2019-03-01 09:26 被阅读0次

常用客户端:Gitkraken, Fork, Github 客户端

(一) Git 命令

1. 初始化 Git

  1. 进入到自己想创建版本库的目录

  2. 输入指令:

    git init
    

    的目录,这个目录就是Git用来跟踪管理版本库的。

3. 文件添加进远程代码库

  1. git add <文件名> 将文件名为filename的文件添加进仓库,可以多个文件名并列,用空格隔开
  2. 初次提交可以直接使用 git add . 将当前所有文件添加进仓库
  3. git commit -m "describe it" 将文件提交到本地分支仓库的操作,后面加的是日志。
  4. git add remote origin <远程仓库地址> 添加远程仓库地址
  5. git pull --rebase origin master 如果在远程仓库中创建了诸如 README.md 等文件,需要先进行这不操作,保证本地也同步到远程的文件
  6. git push -u origin master将本地代码推送到远程代码库

4. 提交和更新代码操作

  1. git add <文件名> 先把要更新的文件加入暂存区,,相应还有git add . (提交新文件和被修改文件,不包括被删除文件)、 git add --all (提交所有变化) 和 git add -u(提交被修改和被删除文件,不包括新文件)
  2. git commit -m "describe it" 提交到本地分支仓库
  3. git push -u <分支名> 推送到远程代码仓库
  4. git pull <远程主机名> <远程分支名>:<本地分支名> 更新代码,如果有冲突需要在本地提交

5. 日常模式总结

  1. 首先,用git push origin branch-name推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name 再次推送
  5. 如果git pull提示 “no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name

6. 常用指令

  1. git status 可以随时仓库当前状态,查看已经命令过但还未经提交到仓库的所有操作,可以看成是待处理事项列表
  2. git diff 可以看到具体修改了哪些内容
  3. git log 查看对仓库的操作记录
  4. git rm <filename> 删除文件,如果确认删除,删除后需要进行 git commit -m "describe it" 操作,保证本地分支同步;如果需要回复删除文件需要用 git checkout --<filename> 操作,从分支仓库中回复文件到暂存区
  5. git clone git@server-name:path/repo-name.git 从远程代码仓库克隆代码
  6. git branch 查看本地分支
  7. git branch -r 查看远程分支
  8. git branch <本地分支名> 创建本地分支
  9. git checkout <本地分支名> 切换到相应本地分支
  10. git branch -d <本地分支名> 删除分支
  11. git merge <本地分支名> 与当前分支进行合并
  12. git reset HEAD 取消缓存在暂存区的文件
  13. git tag 查看版本
  14. git tag <版本号> 创建新版本
  15. git tag -d <版本号> 删除版本

(二) Git 基本概念

1. 版本回退: git reset

  • 每一次commit都是对应一个版本
  • commit id是对版本的具体标识
  • HEAD表示当前版本
  • HEAD^表示上一个版本
  • HEAD^^表示上上版本
  • HEAD~100表示前100个版本
  • git reset --hard commitId 回退到版本号为commitId的地方,也可以用HEAD的形式表示。
  • 穿梭前,用git log查看提交历史,以便确定要回退到哪个版本。
  • 重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

2. 工作区和暂存区

  • 先上一张很经典的图

    img

  • 工作区:就是我们在电脑中实际看到的;

  • 版本库:工作区中的隐藏目录.git,就是版本库;

  • 暂存区:暂存区的概念很重要,理解暂存区之后对于Git的版本管理会有一个比较清晰的思路。

  • master: 这是Git为我们自动创建的第一个分支。

  • 我觉得如果把工作区看成是键盘终端输入,版本库中的master可以看成是电脑硬盘,我们输入的内容首先是到缓存中的,并不是直接存入硬盘。当缓存区满或者人为发送指令时才会将缓存区的内容写入硬盘。

  • 以添加和文件修改为例,git add指令只是选中文件或者其他要提交的修改,将它们添加进暂存区。只有使用git commit指令的时候,才将暂存区的所有内容提交到当前分支。

(三) 分支管理

1. 分支需求描述

  • 不完整的改动可以先放到分支上,这样别人看不到分支的内容,不会相互影响。可以直到开发完毕后,再一次性合并到原来的分支上.
  • 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
img

只有一条master时间线

2. 创建、合并和删除分支

2.1 原理

  • 创建新的分支:

    当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

    img

    创建新的分支dev

  • Git创建一个分支很快,增加一个dev指针,改改HEAD的指向. 从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

    img

    对工作区的修改和提交

  • 合并分支:

    把dev合并到master上, 最简单的方法就是直接把master指向dev的当前提交,就完成了合并:

    img

    合并分支

  • 删除分支:

    删除dev分支就是把dev指针给删掉,删掉后就剩下了一条master分支:

    img

    删除分支

2.2 实战

  • take dev as an example
  • 创建分支: git branch dev
  • 切换到分支:git checkout dev
  • 创建+切换分支: git checkout -b dev
  • 查看当前分支:git branch
  • 切换到master分支:git checkout master
  • 合并指定分支到当前分支:git merge dev
  • 删除分支:git branch -d dev
  • git log --graph命令可以看到分支合并图。

3. 分支策略

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

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

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

  3. 你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
    4.所以,团队合作的分支看起来就像这样:

    img

    团队合作分支

4. Bug分支

  • 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
  • 当工作没有完成时,先把工作现场git stash一下,然后去修复bug.
  • 修复后,再git stash pop,回到工作现场。
  • 要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

5. 多人协作

5.1 基本命令

  • 当从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。

  • 要查看远程库的信息,用git remote

  • 显示更详细的信息, 用git remote -v

  • 推送分支: 就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

    git push origin master  
    git push origin dev
    
    
  • 并不是一定要把本地分支往远程推送,master分支是主分支,因此要时刻与远程同步, 其他视情况而定.

  • git pull 抓取远程的新提交.

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

相关文章

  • Git 基本操作集合

    常用客户端:Gitkraken, Fork, Github 客户端 (一) Git 命令 1. 初始化 Git 进...

  • Git命令梳理

    基本操作 git init git add . git stauts git commit -m '描述' git...

  • git基本操作 梳理

    git操作梳理一、git基本操作1.创建版本仓库 git init(.git目录)2.版本创建 git add ...

  • GitFlow

    假设你已经熟悉git的基本操作:如不熟悉请参考:GitBook 这里简单回顾一下git基本操作 提交基本操作 把...

  • 【数据类型】21、上机练习:容器类型操作

    目录一、列表、元组基本操作二、列表、元组高级操作三、集合基本操作四、字典基本操作 一、列表、元组基本操作 +,*,...

  • git基本操作二:git的基本操作

    本文会带各种命令后的图,与大部分文章区分,只有理论,没有实践 初始化本地库 命令:git init 效果: ,gi...

  • Swift 集合类型之集合

    创建空集合 创建有元素的集合 单个集合的基本操作 遍历集合 console log 如下: 多个集合的操作 con...

  • Git Cocopods 基本操作

    Git 操作 基本操作 查看当前git状态git status 添加代码到暂缓区git add . 提交代码到本地...

  • git常用操作 🎀

    git常用操作 ? 基本知识 查看git信息 修改git配置 提交类操作 分支类操作 创建分支 查看分支 修改分支...

  • git基本操作

    重要概念 已提交(mommitted)该文件已经被安全地保存在本地数据库中了 已修改(modified)修改了某个...

网友评论

      本文标题:Git 基本操作集合

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