安装步骤
1.Git-2.13.2-64-bit 下载地址
2.TortoiseGit-2.3.0.0-64bit.msi 下载地址
3.TortoiseGit-LanguagePack-2.3.0.0-64bit-zh_CN.msi 下载地址
配置
1. 选定一个存放Git仓库的目录,打开该文件夹,在空白处右键,选择TortoiseGit --> Settings,在设置界面设置语言,不勾选自动升级的复选框,点击应用、确定关闭对话框。
2. 再次鼠标右键打开设置对话框,弹出菜单已切换中文,将所有的复选框都去掉,这样右键菜单显得比较干净。
3. 设置,选择左边的Git标签。右边显示名字与Email信息,如下图所示:
点击 “编辑全局 .git/config(O)”按钮,会使用记事本打开全局配置文件,在文件后面加上下面的内容:
[credential]
helper = store
完成后保存,关闭记事本,确定即可。
创建本地仓库与远程仓库的连接
至此Git本地仓库就搭建完成,远程仓库可以搭建在Github等平台或自己的服务器上,此处以GitHub为例
1. 注册GitHub账户Github官网。
2. 登录Github,在右上角找到 New Repository 或者加号下拉按钮(+),新建仓库。
3. 设置远端URL
远程仓库创建完成,页面如下图所示:
获取Github远程仓库的SSH地址,复制,例如:
[email protected]:ZQInQAAS/GitRepository.git
打开之前选定的存放Git仓库的目录,在空白处右键,选择TortoiseGit选项,此时有两个选择,克隆或在这里创建版本库,前者是将已有的远程仓库克隆到本地,后者是远程仓库未建立时先在本地创建再推送至远程。
此处我们选择在这里创建版本库,自动创建一个.git隐藏文件。右键TortoiseGit->设置->Git->远端 对远程仓库的地址进行设置。在URL处粘贴刚刚复制的SSH地址,远端名会自动填充,一般 默认origin。点击添加/保存按钮。
4. 设置远端秘钥
打开TortoiseGit安装目录下的PuttyGen,在打开的窗口中点击Generate按钮,会出现绿色进度条,根据鼠标晃动生成ppk秘钥。生成结束后,复制滚动文本框内的全部内容,点击Save private key按钮,保存为适用于TortoiseGit的私钥,扩展名为.ppk。
登录github,在右上角个人中心里找到Settings->SSH and GPG keys,点击New SSH key。在Key处粘贴秘钥,Title可不填,点击Add。
进入Git本地仓库的目录,右键空白处,打开TortoiseGit->设置->Git->远端,选中origin,在Putty秘钥一栏选择正确的ppk文件路径。
测试
在本地仓库添加文件,右键TortoiseGit ->add->commit->push,如果能推送成功,说明连接建立成功。
注意:
rsa是一种加密传输的算法,使用一对公钥public key和私钥private key分别加密和解密。
如果使用git-bash命令行操作,使用如下命令创建秘钥(SSH Key):
$ssh-keygen -t rsa -C"[email protected]"
然后一路回车,使用默认值即可,密码可以不设置。完成后在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。
因为我们使用TortoiseGit作为github本地管理工具,TortoiseGit使用扩展名为ppk的秘钥,而不是ssh-keygen生成的rsa密钥。也就是说使用ssh-keygen -C "[email protected]" -t rsa产生的密钥TortoiseGit中不能用。而基于github的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于github的rsa密钥也适用于TortoiseGit的ppk密钥,具体配置步骤如下:
1)运行TortoiseGit开始菜单中的puttygen程序,如下图示
2)点击“Generate”按钮,鼠标在上图的空白地方来回移动直到进度条完毕,就会自动生一个随机的key,如下图示
如有需要,可以为密钥设置对应的访问密码,就是修改上图中“Key passphrase”和“Confirm passphrase”的值。
3)将上图中多行文本框的内容全选、复制,并粘贴到git账户的 SSH public key中,这就是适用于git的公钥。
4)点击上图中的“Save private key”按钮,将生成的key保存为适用于TortoiseGit的私钥(扩展名为.ppk)。
5)运行TortoiseGit开始菜单中的Pageant程序,程序启动后将自动停靠在任务栏中,图标显示为,双击该图标,弹出key管理列表,如下图示
6)点击上图中的“Add Key”按钮,将第4步保存的ppk私钥添加进来,关闭对话框即可
此外,如果你不想使用PuttyGen生成秘钥也可以,右键->TortoiseGit->设置->网络,将ssh 客户端默认的改为:%Git安装目录%/usr/bin/ssh.exe,再把ssh-keygen命令创建的公钥id_rsa.pub添加到github个人中心的SSH key里即可。
基本操作
场景1
Tips:
我们需要开发一个新项目,要从远程仓库将代码克隆到本地。
- 进入到 X:\XXXXX 目录
- 右击 => Git Clone...
- 如下图所示(红框中的内容就是项目的Git地址)
Tips
:根据项目大小, 时间会不一样. 克隆完成后, 如果没有错误, 会给出如下提示
场景2
Tips:
单人独立开发这个项目,噼里啪啦一顿操作,操作结束提交到本地仓库。
创建一个文件,如 test1.txt , 然后提交 (commit) 到本地版本库。
-
右击 => Git Commit => ”master” 。如下图所示:
填写提交备注 message (不填写是不允许提交的),勾选需要提交的文件,点击 commit,即可将本地代码提交到本地仓库。出现如下弹框,表示提交成功。
ps
:提交时,会发现上图中的 Status 有这几种值
Status | 含义 |
---|---|
Unknown | 新增的文件,也不在版本库。 |
Added | 新增的文件,在版本库。 |
Modified | 文件修改,在版本库 。 |
Missing | 文件被删除,在版本库。 |
场景3
Tips:
本来独立开发(暗爽),突然入职两位新同志(捣乱的来了),要和你共事这个项目。之后项目经理告诉你:小张!来,把代码提交到远程仓库,好让新同事在新的代码上更改。
将代码推送 (push) 到远端。
-
在文件内右键空白处,选择 Git Push,出现如下弹框:
点击ok,就可以了。
场景4
Tips:
来了个新同事分单任务好像还不错。 今天他的任务不重,还没下班就做完了,把代码提上去了(提交到远程仓库),还叮嘱我把代码更新一下。
-
右键空白处,选择 Git Pull,出现如下弹框:
点击ok,就可以更新至最新代码。
场景5
Tips:
上午项目经理分配了任务,大家又开始操作起来,然后这个同事又比我早做完了什么鬼不可能啊!
,他潇洒的提交代码回家了,哼哧哼哧写好了可以提交了,拉取代码pull
发现报错了肯定是他又写bug了
,应该是修改了同一文件产生了冲突。
轮到我们操作的时候了:
- 将代码提交(commit)到本地仓库
场景2
。 - pull代码
场景4
。 - pull下来之后发现冲突了。
- 解决冲突:噼里啪啦
记得去掉<<<<<<< HEAD ======= >>>>>>>xxxxxxx
。 - 将代码提交(commit)到本地仓库
场景2
。 - push到远端
场景3
。 - 修改结束潇洒离场。
场景6
Tips:
开发了一段时间,突然出现了一个重大BUG,领导要查明原因,就找到了我们两个小开发,并的追问这个“杰作”出自谁手,都不清楚也不承认。第⼆天来了之后发现,我的“小伙伴”被通告了,原来是经理查了提交代码的历史记录,查出是那位同事写的bug。我就说嘛,我怎么可能犯这种低级错误。
查看git提交记录
-
右键空白处 => TortoiseGit => show log,出现如下弹框:
通过日志,可以很直观的看到提交相关记录。比如提交人、提交时间、提交了哪些文件等等。这些信息便于以后进行文件对比。
场景7
Tips:
过了几天,公司又来了一位大数据工程师,来开发咱们系统的报表模块;咱们开发的项目需要新起分支来开发这部分需求。
创建分⽀支
-
新建一个分支,右键 =>TortoiseGit=>Create Branch。
右键,你会发现当前的分支为master 分支,你需要切换到data分支。
-
切换分支,右键 =>TortoiseGit=>Switch/Checkout。
-
然后将它push上去。
场景8
Tips:
项目开始进行并行开发流程,现在想上线一版,将两部分的功能在一 个项目里展示,那么就需要合并分支了。
在合并分支前,一定要确认 data 分支上的代码全部提交到本地版本库,或者别人开发完你pull到了本地。
-
右键 => TortoiseGit => Merge,选择被合并的分支。
场景9
Tips:
测试小伙伴们测试好这个流程感觉没啥问题,决定在今晚上线,咱们想要在版本库中让他们记住这一版的状态,又不不想通过log查询(毕竟log每天都更更新, log早就成千上万了)
给当前版本tag标签
git tag -a v1.0.0 -m '测试部署 1.0.0'
git push origin --tags
// 查看标签
git tag
// 查看指定版本号
git show v1.0.0
场景10
Tips:
项目来来回回上线了了几版,产品经理忽然发现后续版本的需求完全是画蛇添足,让我们回到第一版。
版本回退
-
查看提交日志, 确定回退的版本。
- 确定后就能回退到指定版本。