程序员必备-在终端上使用git

我是一个ios开发,用的mac 电脑 比较推荐的 终端神器iTerm2和用来代替bash的oh-my-zsh,

1 配置简单环境
oh-my-zsh 提供了强大的命令提示 使用 tab 就可以找到许多相关的命令 和 还可以使用别名 类似使用 一个命令的快捷方式 等等特别多好用的功能 详情可以百度 下oh-my-zsh

(1)下载 安装 zsh 跑一条简单命令即可

   curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh  

使用curl 下载 并使用管道 sh install.sh 执行脚本 重启一下终端即可以看到你的iterm2 有些不同的变化了

F3015E98-B170-4915-97A4-E80092A9B21E.png

(2)配置别名简化你的命令操作
举个例子vim ~/.zshrc

687CD4B6-671A-4B4C-9E95-48365AFE9104.png

进入vim 敲击键盘字母 a进入编辑模式 然后在后面复制 alias xxx='你要执行的命令,然后点击键盘esc 键盘输入 :wq 保存退出 ,然后source .zshrc 或者重启一下你的终端你的别名就生效了,然后你就只需要输入别名就可以代替你那一长串复杂的命令,真是工作效率高了不少,上面的例子也可以看到 我只要输入一个work 就可以代替了cd Desktop/qianluduobao/duoBao 通过pwd 查看当前目录我的确可以达到想要的效果

12B17A79-DC32-4CB8-9571-154E98D092E5.png

(3)发掘更多强大的效果 ,百度轻松可以找到很多资料,也可以在http://ohmyz.sh 他的官网上面看到相关的文档

2 开始使用命令
这里开始介绍一些工作常用到的许多命令

(1)查看性的git 命令
可以看到 上图 ,oh-my-zsh 当他检测到含有gitcofig的文件自动帮你表明当前projiect 所在的分支,简单明了

git branch

查看你当前所在的分支


58D18EB0-252A-4F6B-81B6-10D3B577DEFC.png

git fetch

当你在 github 或者gitlab 的库创建了分支 你可以通过git fetch 或者那个分支

git log

查看你本地的提交项,当然commit id 是(即是 commit 后面跟着一串字符)非常有用的东西后面会说到


0C3E619C-81AF-40DF-96B8-84BA3F75A1FE.png

git status

查看你当前分支有没有什么改动项 或者说一些文件是否受到git 管理等等

B03C3DEC-9E86-4E7E-89DE-A1F54140BC7B.png

2 功能性命令

git clone +url

这个将某个功能拉取到当前目录

git add + 文件名

将某个文件加入到git 管理

git commit -am "提交说明"

将你全部的修改项都提交到本地的git 库

.gitignore

这个是帮你把一些不想加进git 管理的一个配置文件,只要你在里面写入对应的文件名 或者 文件夹的路径 就可以自动过滤掉 举个例子

C4476B53-A7E8-4F35-B550-64DA6EBAB254.png

这里提交了一个vim 是一个 终端的文本编辑器,vim .gitignore 当你没有这个文件时他会自动帮你创建好,在用vim 编辑你想要过滤的文件,首先git status 看下你想要过滤的文件

368EA512-1404-4606-AF68-BAA5A876212A.png

这里看到了一些我不想要git 管理的文件 然后把他们路径复制到 .gitignore 中


678C4AAB-729A-40A6-9279-FB48A0539926.png

在vim 中 敲下键盘的字母 a 进入编辑模式 可以看到下面有个 insert 然后复制想要过滤的路径 然后敲下 键盘的esc 退出编辑模式 输入 :wq 保存并退出

B03C3DEC-9E86-4E7E-89DE-A1F54140BC7B.png

在 git status 我们已经看到 git 未跟踪的目录已经没有刚刚那个路径了,然后在 git add .gitignore 然后在 git commit -am 就可以了

git pull

拉取当前的分支git 远程库

git push

将本地提交项推送到远程库上面

git merge

当某些分支有提交项 我想把那个分支的提交项目和新增的文件合并到当前分支就可以使用 git merge,举个例子 我当前在 yydb 分支 想把master 的提交项合并过来


B7660E8C-C2C8-41E6-A3C4-F6AB98053790.png

我先切换到master (git checkout + 分支名) 然后git pull 拉取最新代码 然后切回到yydb分支

17579865-A28B-40F5-8C0A-A8B974522BA2.png

第一步切到master 是为了将master 更新到最新的代码然后在合过来避免不必要的问题 ,然后直接执行 git merge master 就可以了把master 代码合并到当前分支了

FE108708-424A-4B6A-908D-FA9DFCE09DA3.png

这时候往往会因为当前分支一些修改的东西和想合并分支修改的东西不一致产生冲突 如图的CONFLTCT,看到这些不用急,如果是一些老司机可能直接用vim 就直接冲突全改了,而我vim 小白就用了sublime 这个文本工具了
我们可以看到CONFLTCT 后面接着文件冲突的路径我们将projiect 拉进sublime 对着路径一点点去处理就OK了 ,在举个例子

上面截图可以看到Tool/DBInfoTool.m 这里路径是有冲突的用sublime 找到这个文件


82556DC3-DB02-4B5F-85CC-BF42AB882CCD.png

可以看到所有的冲突都是<<<<<<HEAD 只有在commod +f 搜索带有<<<<<HEAD
的字符串 修改即可

<<<<<<< HEAD
        NSDate *newDate = [DBInfoTool getStringDate:DBApplyTime];
=======
        NSDate *newDate = [DBInfoTool getStringDate: DBApplyTime];
>>>>>>> master

其中 <<<<<<< HEAD
        NSDate *newDate = [DBInfoTool getStringDate:DBApplyTime];
======= 
这个部分是你当前分支的
=======
        NSDate *newDate = [DBInfoTool getStringDate: DBApplyTime];
>>>>>>> master
这个则是你要合并的分支

你看需要保留那边的代码 改好去掉 <<<<<<< HEAD ======= >>>>>>> master
这些多余的字符就可以了

git reset

代码回滚 如果你发现当前的代码有问题,你就可以通过git 版本库会退到你想要的版本,这里就要用到之前的commit id 了

首先git log 查看commit id

F28D6E3B-0F8A-45E0-8A10-0AA22262BB23.png

好我现在想要回退到提交说明为,增加审核切换到域名灰度,并用时间判断审核

那么就 git reset --hard commit id 即可,头指针已经指向了响应的版本


2ABF25A7-57CE-4F20-8715-0F96D36B73ED.png

如果你想要回到远程库的版本也可以这样的

git reset --hard origin/当前分支名

3F2EDFFA-9969-4229-99BD-BB5E825004AB.png

比较常用到的git 命令基本都在这里了,如果以后还会遇到一些别的也会更新在这里,如果有什么说错的,也希望可以留言让我更正一下

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

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,449评论 1 26
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,672评论 1 17
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,645评论 4 54
  • 画面中关于你的讯息扑面而来,错综复杂的交织在一起,那种“触感”让我体会到拿的起放不下的痛觉 我曾经否定过,否定那个...
    Lawor_阅读 347评论 0 3
  • 昨天有宝妈问正在哺乳期感冒了该怎么办,甜蜜妈我今天找了一些方法,供各位宝妈参考。 其实对于一般感冒,注意多休息,保...
    甜蜜辣妈阅读 623评论 0 1