程序员读书其他IT

让Git不再难学

2016-04-16  本文已影响7858人  Jack_lin
放手

写在前面

在团队做过软件开发的,版本控制必是不可或缺的一项。目前,版本控制主要分为集中式版本控制系统和分布式版本控制系统 ,即大家熟知的SVN和Git。Git是当下最流行的分布式版本控制系统,故,今天,我们就来研究一下Git的神奇之处。

浅析SVN与Git的不同

安装Git

Git的使用

有两种Git的使用方法,一种是通过终端命令控制,另一种是使用Git的图形管理工具——SourceTree。具体两者哪一种更好用,更有效率,那还得因人而异。笔者下面将会分别介绍这两种方法的基本操作,希望读者能边读边动手操作一下,受益匪浅。

一.命令下的Git
1.创建版本库:
2.添加文件到版本库
3.查看仓库状态
4.查看修改内容
5.版本回退

很清晰,共有三次提交历史。其中,988f92f1f5cf959d491ad63462e0c90372bb4b0b这样一串字符表示提交的版本号commit id

6.工作区与暂存区
7.撤销修改
8.删除文件
小结一下

以上操作都是在本地仓库进行的一些操作,如果感觉上面讲的有些许啰嗦,那么只需记住下面几个命令即可:

1.git init      -------创建空的版本库;
2.git add       -------添加文件到暂存区;
3.git commit      -------提交文件到版本库(仓库);
4.git status      -------查看相关状态;
5.git diff      -------查看具体修改的内容;
6.git log      -------查看提交历史记录;
7.git reset      -------回到上一版本;
8.git reflog      -------查看命令历史记录;
9.git checkout      -------丢弃工作区的修改;
10.git rm      -------删除文件;
二.SourceTree的使用
SourceTree 创建流程1 创建流程2 仓库状态 显示未暂存文件 已暂存
解释一下,已暂存就是相当于git add操作。 提交后
远程仓库

发现没有上述的两个文件,这时需要创建:

  Mac-Pro:~ kys-1 $ ssh-keygen -t rsa -C "youremail@example.com"  

需要将邮件地址换成自己的地址,如下:

Mac-Pro:~ kys-1$ ssh-keygen -t rsa -C "40178217@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/kys-1/.ssh/id_rsa): 
Created directory '/Users/kys-1/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/kys-1/.ssh/id_rsa.
Your public key has been saved in /Users/kys-1/.ssh/id_rsa.pub.

出现上述描述,就证明你成功了,然后到主目录下找到.ssh目录,查看id_rsaid_rsa.pub文件,id_rsa是私钥,需要自己保留好,id_rsa.pub是公钥,别人知道也无妨。

填写信息

需要填写仓库名,描述以及是否勾选创建初始化文件等。

 Mac-Pro:~ kys-1$ git remote add origin yourGitAddress

然后,将本地库的所有内容推送到远程库:

Mac-Pro:~ kys-1$ git push -u origin master

到这一步,只要本地作了提交。就可以通过命令:

Mac-Pro:~ kys-1$ git push origin master

把本地master分支的最新修改推送到GitHub上去。

Mac-Pro:~ kys-1$ git clone yourLocalGitAddress1
操作流程

源URL就是远程仓库的地址,目标路径是本地存储的路径。

创建与合并分支(与SourceTree同步对照)

-b参数表示创建并切换.

创建分支 切换到dev分支 提交 提交后 切换到master分支
点击右键,选择检出master分支即可。 检出成功 合并后
小结一下
  查看分支:git branch
  创建分支:git branch <name>
  切换分支:git checkout <name>
  创建+切换分支:git checkout -b <name>
  合并某分支到当前分支:git merge <name>
  删除分支:git branch -d <name>
冲突解决
SourceTree显示状态 冲突信息

We will make a conflict!

  Mac-Pro:gitTest kys-1$ git add README.md
  Mac-Pro:gitTest kys-1$ git commit -m "comflict fixed"
  [master dad373b] comflict fixed
SourceTree的内容
分支管理策略
截图 分支情况
添加Bug分支

no changes added to commit (use "git add" and/or "git commit -a")

暂存 创建bug分支 合并分支 bug修复完成 暂存区恢复
Feature分支
正常删除提示 强制删除
标签管理
创建标签 标签显示 打开标签 删除本地标签
忽略特殊文件
忽略文件

/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件

gitignore还可以指定要将哪些文件添加到版本管理中,只是在文件前加一个!即可:

!*.zip
!/mtk/one.txt

其中,!/mtk/one.txt只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,说到这想必大家都明白了。

唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。

写在最后
截图集

从4月8日开始写,到今天才写完,将近耗时一周,中途遇见不少问题,还好,都坚持下来了,做程序猿就得拼啊,不然怎么能攻城狮啊!
送给大家一句话:坚持到无能为力,拼搏到感动自己!

传送门

扫一扫下面的二维码,欢迎关注我的个人微信公众号攻城狮的动态(ID:iOSDevSkills),可在微信公众号进行留言,更多精彩技术文章,期待您的加入!一起讨论,一起成长!一起攻城狮!

公众号
上一篇 下一篇

猜你喜欢

热点阅读