git 的使用总结

(一)git 的简介

在实际场景中,git 主要作为分布式的团队协作工具来完成团队协作开发。


git的通用操作流程(来源于网络)

上图涉及到的四个点:

工作区(workspace):本地电脑存放项目文件的地方。(日常代码放置区)

暂存区(Index/Stage):暂时存放文件的地方,通常使用 git add (装入zsh插件以后简写为:gaa)命令将工作区的文件添加到暂存区里。

本地仓库  (Repository):使用 git commit  (装入zsh插件以后添加注释上传简写为:gcmsg -m '注解') 命令可以将暂存区中的文件添加到本地仓库中。

远程仓库(Remote):不是在本地仓库中,项目代码在远程git服务器上,比如项目放在gitlab上,就是一个远程仓库。通常使用 git clone <url> 将远程仓库拷贝到本地仓库中。使用 git push (gp) 将本地仓库的暂存文件推送到远程仓库。

总结:我们可以简化的把一个基础的 git 使用流程记忆为, 工作区与暂存区的交互----> 暂存区与本地仓库的交互 ----> 本地仓库和远程仓库的交互。

(二)git 基本操作命令

由于本人使用 git 时间较短,很多命令没有涉及到,仅供自用参考。其中打了 * 号的为目前初入门最最常用的指令,会随着使用时间的增加而持续的记录更新。

1、配置常用命令:

* 列出当前配置: git config --list

* 列出本地仓库配置: git config --local --list

列出全局配置: git config --global --list;

列出系统配置: git config --system --list;

总结:列出配置相关--- git config --范围  --list

2、工作区常用命令:

* 从远程git仓库复制项目:  git clone <url>

* 提交工作区所有文件到暂存区:git add 

提交工作区中指定文件到暂存区:git add <file1> <file2> ...

保存工作区文件但在暂存区上删除此文件 :  git rm --cached <file>

删除工作区和暂存区删除对应文件的记录:git rm <file1> <file2>

撤销上一次对文件的操作:git checkout --<file>

* 重命名文件,并将已改名文件提交到暂存区:git mv [file-original] [file-renamed]

* 查询当前工作区所有文件的状态:git status (gst)

* 比较工作区中当前文件和暂存区之间的差异,也就是修改之后还没有暂存(gaa)的内容:git diff

* 比较指定文件在工作区和暂存区上的差异 :git diff <file-name>

3、暂存区常用命令:

* 将暂存区中的文件提交到本地仓库中:git commit -m "提交信息" (gcmsg -m '...')

撤销上一次提交(提交完发现注解错误或者少提交了可用,也可再次gcmsg):git commit --amend

* 比较暂存区与上一版本的差异:git diff --cached

查看提交历史:git log

4、仓库常用命令

查看本地仓库关联的远程仓库:git remote

添加远程仓库,一般会取一个简短的别名:git remote add [remote-name] [url]

* 从远程仓库中抓取本地仓库中没有的更新:git fetch [remote-name]

将本地仓库某分支推送到远程仓库上:git push [remote-name] [branch-name] 

查看远程仓库的详细信息:git remote show origin

移除远程仓库:git remote rm [remote-name]

(三)git 分支

1、分支的简介

git 分支(来源于网络)

     如上图有两个分支:Master和 branch-1  。其中Master是默认就存在的一个分支,通常叫它 主分支。主分支是必须有的分支,其名称也可以通过git远程仓库修改默认配置,但一般不建议修改。这个分支也可以删,但是需要特殊设置下。branch-1 是由我们创建的分支。

    从图上,我们可以看到每一个commit的引用,引用最先指向的是1。通过遍历每个分支,我们可以看出最后的通常commit是4。即branch-1 和 master 的合并。

简而言之,在git中分支只是一个指向单个commit的指针,分支开发可以确保每个人有自己的独立分支 ,版本迭代更加清晰 ,使得团队多人协作开发效率更高。

2、分支常用命令

* 创建分支:git branch <branch-name>

* 从当前所处的分支切换到其他分支:git checkout <branch-name>

* 创建分支并切换为当前分支:git checkout -b <branch-name>

* 删除分支:git branch -d <branch-name>

* 显示本地仓库的所有分支:git branch

* 将当前分支与指定分支进行合并:git merge <branch-name>

* 把远程分支合并到当前分支:git merge <remote-name>/<branch-name>

查看各个分支最后一个提交对象的信息:git branch -v

从远程分支checkout出来的本地分支,称之为跟踪分支:(会自动判断应该向远程仓库中的哪个分支推送数据)

在跟踪分支上向远程分支上推送内容:git push

在跟踪分支上合并远程分支:git pull;

(四)反思踩过的坑

1、commit失败不注意看 iterm的报错,而直接push ,导致提交不成功。应及时 git status 查看当前的状态找出未push 成功的原因,并修改。

2、使用fetch只是将远端数据拉到本地仓库,并不自动合并到当前工作分支,只能人工合并。因为在dbase新建迭代会设置分支和远程仓库的自动关联,可以直接使用git pull来拉去远程分支的数据,将远端分支自动合并到本地仓库中的当前分支。

3、团队开发,有新的分支提交到master 的时候,要拉取远方master 进行合并,再重新push。

4、时刻注意当前的分支是哪个

5、永远要先保证自己在 gitlab 上的commit 里面已经更新了,再部署 !!!!!!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料) 一:Git是什么? Git是目前世界上最先进的...
    axiaochao阅读 1,946评论 1 8
  • 前言 由于公司使用的 git 来管理项目的版本迭代问题,天天使用,可以说是非常重要的内容。以前都是将一些相关的命令...
    zgfei阅读 318评论 0 2
  • 安装Git Git的下载地址:Git官网下载地址 Git本地仓库和命令 配置用户 下载完Git后,右键会有一个Gi...
    TokyoZ阅读 4,523评论 1 7
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,701评论 9 163
  • 查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git sho...
    Swiftor阅读 2,138评论 0 2