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

作者: 嘿晴天 | 来源:发表于2016-12-10 01:02 被阅读2387次

我是一个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 命令基本都在这里了,如果以后还会遇到一些别的也会更新在这里,如果有什么说错的,也希望可以留言让我更正一下

相关文章

网友评论

本文标题:程序员必备-在终端上使用git

本文链接:https://www.haomeiwen.com/subject/rceepttx.html