Git命令总结

Git命令总结

本文是参照思否上的一篇文章,原文地址请点击https://segmentfault.com/a/1190000015676846
文中记录了大部分与git有关操作,文章中的截图是在iterm2上进行,方便对一些命令行加深记忆。

一、git remote

为远程仓库指定别名,以便于管理远程主机,默认只有一个时为origin。

1、查看主机名: git remote

2、查看主机名和网址: git remote -v

默认克隆远程仓库到本地时,远程主机为origin,如需指定别名可使用 git clone -o <别名> <远程git地址>

3、查看主机的详细信息: git remote show <主机名>。比如说:git remote show origin

查看主机详细信息

4、添加远程主机: git remote add <主机名> <网址>

5、删除远程主机: git remote rm <主机名>

6、修改远程主机的别名: git remote rename <原主机名> <新主机名>

二、git fetch

将某个远程主机的更新,全部/分支 取回本地(此时只更新了Repository)它取回的代码对你本地的开发代码没有影响,如需彻底更新需合并或使用 git pull

远程主机的更新,全部取回本地: git fetch <远程主机名>

将远程仓库特定分支更新到本地: git fetch <远程主机名> <分支名>

三、git pull

拉取远程主机某分支的更新,再与本地的指定分支合并(相当与fetch加上了合并分支功能的操作)。

拉取远程某分支并与本地某一分支合并(没有则默认会创建): git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前所在分支合并,则冒号后面的部分可以省略: git pull <远程主机名> <远程分支名>

如果当前分支与远程分支存在追踪关系,则可以省略远程分支名: git pull <远程主机名>

如果当前分支只有一个追踪分支,则远程主机名都可以省略: git pull

四、git push

将本地分支的更新,推送到远程主机,其命令格式与 git pull相似。

1、将本地分支推送到远程分支: git push <远程主机名> <本地分支名>:<远程分支名>

2、如果省略远程分支名,则默认为将本地分支推送到与之关联的远程分支:(一般设置本地分支和与之关联的远程分支同名,防止混淆) git push <远程主机名> <本地分支名>

如果对应的远程分支不存在,则会被创建(m默认与本地分支同名)。

3、如果省略本地分支名,则表示删除指定的远程分支,这等同于推送一个空的本地分支到对应远程分支: git push origin:<远程分支>等同于 git push origin--delete <远程分支>

4、如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略 git push origin

5、如果当前分支只有一个追踪分支,那么主机名也可以省略: git push

6、如果当前分支与多个主机存在追踪关系(使用场景相对来说较少),可以使用 -u 指定默认推送主机: git push -u origin <主机名>,设置时候需推送便可以直接使用 git push

7、将本地的所有分支都推送到远程主机: git push--all origin

8、如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做 git pull合并差异,然后再推送到远程主机。如果一定要推送,可以使用 --force选项(谨慎使用,除非你非常确认): git push--force origin

注意:分支推送顺序的格式为<来源地>:<目的地>,所以 git pull格式:<远程分支>:<本地分支>, git push格式为:<本地分支>:<远程分支>。

五、分支操作

1、创建本地分支: git branch test:(创建名为test的本地分支)。

2、切换分支: git checkout test:(切换到test分支)。

3、创建并切换分支 git branch -b test:(相当于以上两条命令的合并)。

4、查看本地分支: git branch

5、查看远程仓库所有分支: git branch -a

6、删除本地分支: git branch -d test:(删除本地test分支)。

7、分支合并: git merge master:(将master分支合并到当前分支)。

8、本地分支重命名: git branch -m oldName newName

9、远程分支重命名:

重命名远程分支对应的本地分支: git branch -m oldName newName;

删除远程分支: git push--deleteorigin oldName;

上传新命名的本地分支: git push origin newName;

把修改后的本地分支与远程分支关联: git branch--set-upstream-to origin/newName

10、分支关联:

查看当前的本地分支与远程分支的关联关系: git branch -vv

11、分支差异查看:

查看本地当前分支与远程某一分支的差异: git diff。下面就是截取的差异的一部分。

本地与远程分支差异

六、修改撤销

1、 git checkout--<文件名>:丢弃工作区的修改,就是让这个文件回到最近一次 git commitgit add时的状态。

2、 git reset HEAD<文件名>:把暂存区的修改撤销掉(unstage),重新放回工作区。

3、 git reset--hard commit_id:git版本回退,回退到特定的commit_id版本。

流程: git log查看提交历史,以便确定要回退到哪个版本(commit 之后的即为ID)。下图是通过git log进行查看提交历史。

查看提交历史

4、 git reset--hard commit_id:回退到commit_id版本。

5、 git reflog查看命令历史,以便确定要回到未来的哪个版本。更新远程代码到本地:

  • git fetch origin master(分支)。

  • git pull// 将fetch下来的代码pull到本地。

  • git diff master origin/master// 查看本地分支代码和远程仓库的差异。

查看命令历史

七、配置

1、 git config -l// 陈列出所有的git配置项。下图是某项目里所有的配置项。

git配置项

2、 git config core.ignorecasefalse //配置git不忽略大小写(默认忽略)。

总结

总的来说,git的出现是方便管理项目代码,尤其是多人协作。而且现在流行的IDE早早就高度支持git操作,所以大部分情况下,我都是在webstorm里进行git操作,很少使用到命令行。但这也不影响我们去学习基本的git操作。以上~

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

推荐阅读更多精彩内容

  • 三大区域: 工作区 → 缓存区 → 本地仓库 一 、 使用 git config 命令进行配置: git ...
    Manchangdx阅读 2,842评论 0 2
  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 2,065评论 0 18
  • Git 命令 mkdir testcd testtouch a.md alias 设置别名 git config ...
    任教主来也阅读 670评论 0 0
  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,053评论 1 45
  • 鸡年心情好,天天没烦恼;举头揽幸福,低头抱美好;一颗快乐心,一家温馨情; 幸福身边在,健康迎未来;朋友,我在远方祝...
    安顺汽修服务阅读 166评论 0 0