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 里面已经更新了,再部署 !!!!!!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

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