git使用总结


 前言:本文不过多介绍Git的基本命令,主要记录一些经常遇到的使用场景。

一、Alias命令

  • 场景:通过这个Linux命令配置终端文件之后,就可以通过简写提高工作效率,程序猿还是要学会偷懒才行。
alias g="git"
alias gb="git branch"
alias gch="git checkout"
alias gcm="git commit -m"
alias gc="git clone"
alias gamend="git commit --amend -C HEAD"
alias gst="git status"

二、将分支推送到远端

  • 场景一:假设现在所在的分支是develop,指定推送到远端分支origin-develop
git push origin develop:origin-develop
  • 场景二:如果要覆盖远程分支origin-develop,通过参数-f
git push -f develop:origin-develop

三、追加更新到某个之前的 commit

  • 场景:经常有这种情况,刚commit的更新发现还有不足,包括一些新增加调整修复,但是觉得提交两个commit又非常蛋疼,就可以用这种办法解决。
git add 更新修改的文件
git commit --amend -C HEAD 或者 gamend

四、查找相关文件的commit提交

  • 场景:有时候需要查看某个文件在哪些commit中进行了修改。
//方法一:
git log 查找文件
git show commit_id
//方法二:
git log --follow filename(文件绝对路径)

五、删除某些 commit

  • 场景:有时候添加了一些垃圾文件或者错误代码但是已经commit了,这时候就可以把通过命令将其删除。
git rebase -i HEAD~5(数字5只是样例, 进入vim编辑模式显示最近5次commit)

执行完命令之后会出来5行,如果你要修改哪个,就把对应的pick改成edit,保存退出。 这时通过git log你可以发现,git的最后一次提交已经变成你选的那个.

  1 pick bfab1a3 message
  2 pick 87c23fd message
  3 pick 731a5be message
  4 pick 9049799 message
  5 pick 67dd0ae message

六、追加修改到之前某个 commit

  • 场景:有时候写着写着发现之前的某个提交需要追加修改,这时候需要先把当前的工作代码保存,再追加到被修改的那个commit中。
//如果通过 gst 发现已经有文件被修改,这时候需要把修改暂存起来。
git stash

//接着找到你需要追加修改的那个commit id,如731a5be
git rebase 731a5be~ -i 或者
git rebase -i HEAD~5 //列出最近5个commit

//在vim中把你需要修改的 commit 前面的 pick改成 edit,保存,关闭vim编辑器,这时候会回到终端,再输入:
git stash pop

//将缓存的更新拿出来做修改,再git add .最后git rebase --continue将修改添加到你想添加的commit中。
//注意此时不需要再commit.
git add .
git rebase --continue

七、撤销上一次 git add . 操作

  • 场景:通常是因为忘记添加.gitignore文件,或者是粗心把一些非必要的文件跟踪了。
//该命令会 unstage 你上一个 commit 增加的所有文件。
git reset
//如果你只想 unstage 某些文件:
git reset --<file 1> <file 2> ... <file n>

八、查找含有特定关键字的 commit

git log --grep //最基本的用法

//查找一个月以内commit log message里含有 flag_one 或者 flag_two的 commits
git log --grep=flag_one--grep=flag_two --since=1.month 

//查找指定作者,例如多人开发的时候查看队友关于flag关键字的提交
git log --grep=flag --author=Linus

//查找文件里面含有 flag 和 hello 的文件(不局限于同一行)
git grep -l --all-match -e flag -e hello

九、创建debug分支修复bug

  • 场景:bug是无处不在的,但是很多时候boss要求必须在短时间内修改bug,可是手头的工作还没有完成以及提交,可能需要1天时间,这时候就可以运用。
//step 1:将目前的工作代码缓存起来
git stash

//step 2:假定需要在dev分支上修复,就从dev创建临时分支issue-xxx:
git checkout dev
git checkout -b issue-xxx

//step 3:修改bug 并添加
git add .

//step 4: 修复完成后,切换到dev分支,并完成合并,最后删除issue-xxx
git checkout dev
git merge --no-ff -m "merged bug fix xxx" issue-xxx
git branch -d issue-xxx

//最后:工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下。
//有两个办法:一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
git stash apply 
git stash drop
//第二种方式是用git stash pop,恢复的同时把stash内容也删了。
git stash pop

//再用git stash list查看,就看不到任何stash内容了
git stash list

最后

  • 以上这些便是我这段时间使用git的一些心得,感谢Linus给我们创造了一个这么完美的工具。当然,对于这么强大的工具,我所记录的也只是冰山一角,我也需要不断积累不断更新。
  • 分享链接:一个很不错的git学习网站,网站动画满分(翻墙,你懂的) http://learngitbranching.js.org/
  • 经典书籍《Pro Git》,还没来得及看。http://git.oschina.net/progit/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • 特有名词解释 DETACHED HEAD HEAD normally refers to a named bran...
    清水芦苇阅读 549评论 0 0
  • 蜗牛和老鹰的话题 写今天的这个命题时总会想起小时候经常写的一个素材作文,能够爬上金字塔顶端的最终只有两种动物,一种...
    萧牧寒阅读 450评论 0 2
  • 世界说小也小,小到让人们能够遇到彼此。 世界说大也大,大到分别的人却不知何时再见。 那些曾经一间教室里学习打闹的同...
    半朴园阅读 193评论 0 0
  • 昨晚,有梦,梦到自己在一座美丽的大山脚下,绿色的草是毯子,点缀着各色的花儿。我沒有行李,光着脚,如同幽灵一样漫步。...
    涡孩缇阅读 198评论 0 0
  • 一 经常能听到“追女孩”这样的字眼,听得多了,我就在想,什么叫追女孩?为什么要去追女孩?是因为她要避开你,她跑你就...
    I文心I阅读 434评论 2 0