TortoiseGit与在线代码托管仓库使用说明

  1. 在在线代码托管仓库 github、码云或者自建托管仓库gitlab中先创建一个仓库(项目),这里名为GitTest。
  2. 在在线托管仓库的个人设置里面,设置SSH公钥。大致的步骤如下图所示,但是公钥的生成请看第 3. 点。
    1.png
  3. ssh-rsa公钥的生成方法需要用到TortoiseGit的工具进行生成。SSH公钥由TortoiseGit生成,在C:Program FilesTortoiseGitbin 目录下双击puttygen.exe,点击Generate后在空白区域移动鼠标使ssh-rsa生成,然后点击 Save private key按钮,将公钥保存成ppk后缀的文件。如下图所示:
  4. 在你要做项目的位置右键点击Git 克隆
    2.png

会出现如下界面,其中URL写的是你仓库的SSH地址,目录就是你要工作的目录,可以再次选择。加载Putty秘钥选择刚才的秘钥。
3.png
以码云为例,点击仓库右上角的克隆(clone)(其他托管仓库可能叫法有所不同),找到SSH,填进去即可。
4.png
5.png

  1. 在以上工作都准备完毕后,会首次进行一个同步,以你仓库的命名创建一个文件夹,这个就是你之后的工作目录,比如GitTest是我在码云上创建的仓库,那么文件夹就叫GitTest,以后这就是我的工作目录。

【托管仓库】
6.png

【本地】
7.png

  1. 进入工作目录,显示隐藏的项目,可以发现存在一个.git的隐藏目录,就代表此目录与git相关。
    8.png
  2. 新建一个文件,1111.txt,输入内容“这里是测试1号文件”,鼠标右键点击【Git提交】,具体情况如下图所示:
    9.png
  3. 勾选1111.txt,日志信息需要手动输入,比如改了哪些内容。
    10.png

这里首先要明确一个概念,【本地仓库】与【远程仓库】,本地仓库就是在电脑上建立的仓库,远程仓库就是指在线托管仓库(如:github、码云、gitlab等)。

TortoiseGit软件这里“提交”的意思是发送给本地仓库,“推送”的意思是发送给远程仓库。“提交并推送”的意思是提交给本地仓库并推送给远程仓库。如果你选择了提交,提交完成后还会还会再次询问是否进行推送,所以这里是分为两步执行的。
11.png
这里已【提交并推送】成功,打开码云看看是否提交成功吧!如下图所示:码云中GitTest仓库已出现1个文件,1111.txt(大家不用管我提交了几次,几个分支,这些都是之前做测试用的)
12.png
打开文件查看:(确保内容为一致)
13.png

  1. 再创建一个2222.txt文件,内容输入“第二个测试文件”,再按之前的方法提交一次,如下界面所示:
    14.png

10.查看码云上的GitTest代码仓库,如下图所示:
15.png
11.修改1111.txt的内容,在末尾加入一部分内容,在点击Git提交按钮,进入到如下界面,如图所示:
16.png
右键可以选择与基础版本比较,可以对比与上一个版本的内容改了哪些,如下图所示:
17.png
确定没问题后点击“提交并推送”。
12.在码云GitTest仓库里,找到1111.txt打开,查看内容已更新
18.png
13.【如何删除】直接在本地删除后提交并推送即可完成,比如我删除2222.txt,然后按照之前的步骤右键点击“Git提交”。然后紧接着看到的文件是缺失状态,勾选2222.txt文件,日志信息写删除的原因,点击“提交并推送”,如下图所示:
19.png
14.删除了2222.txt后查看码云上的GitTest仓库,会看到只剩下1111.txt,另外一个已经不见。如下图所示:
20.png
15.【可能提交失败的原因】要知道,在做上述任何操作的情况下,如果只有1个人,当然百分之百会提交成功,但是如果有多个人在协作开发,可能别人已经修改过某些文件。无论与你操作的文件是否相撞,你都无法提交成功。
16.【解决冲突之,在线仓库多了我本地没有的文件】我在码云上新建一个文件,命名为“如何解决冲突.txt”,如下图所示:
21.png
然后在本地工作目录新建一个3333.txt,如下所示:
22.png
右键点击提交,如下图所示:
很显然,直接报错,这个时候如果不解决冲突,则是死活也提交不上去的。所以这个时候得右键点击“同步”按钮。
23.png
然后点击拉取:
24.png
可以看到,文件已经被拉取下来了,这也叫意味着解决了冲突。如下图所示:
25.png
同步下来后界面不要关,接着点击推送,就可以将文件推送上去。也就是一拉一推
26.png
17.【解决冲突之,别人修改的文件与我修改的文件撞车】首先我在码云上编辑3333.txt,加入内容“在线添加了此内容”,如下图所示:
27.png
然后在本地我也修改了3333.txt中的内容,叫“这是本地添加的内容”。必须先点击提交确定是否有冲突,再点击同步,如下图所示:
28.png
按照正常操作,这时点击“拉取”按钮,但是由于双方都修改了内容,自然是不可能拉取成功的。这个时候,需要鼠标右键编辑冲突,如下图所示:
29.png
右键点击“编辑冲突”
30.png
把上面的内容复制到下面去拼接一下,当然正常的情况不允许直接用这个文本编辑器去编辑,而是去【对比】。对比哪些地方需要修改,用真正的编辑器去编辑处理,我这里直接
31.png
Ctrl+S ,点击标记为已解决
32.png
如果你不慎将上面的面板关闭了,自己用编辑器编辑完内容,那可以从以下方面解决冲突:
33.png
选择该文件,点击确定,可以解锁该文件
34.png
35.png
这个时候你点击右键,不再有“Git同步”选项,只能点击“Git提交”选项,如下图所示:
36.png
查看码云,如下图所示:
37.png
18.【分支】在你没创建任何分支前,一般都有个默认主分支,命名为“master”。我在码云中创建了一个cat分支,cat分支与master默认分支一样,都属于常规分支,唯一不同的是Master一般可以设为保护分支,由一个人进行审核。如下图所示:
38.png
在创建的时候,这个新创建的cat分支会将原master分支中的所有文件同步一份过去,但是之后对于提交到cat分支的和master分支的不同文件,两个分支之间并不会同步,应先提交到自己分支,再请求合并。
在本地目录GitTest文件夹中创建一个新文件“cat分支新文件.txt”,如下所示:
39.png
鼠标右键点击“Git提交”,只是这个时候有点不一样,需要在上方勾选“新建分支”,然后输入cat作为本地仓库的cat分支。
40.png
提交并推送,就会出现如下所示界面,取消推送所有分支的勾选
41.png
42.png
点击确定按钮(这时候会出现提交失败,很正常啊,因为之前都处于master分支,当然要先同步一下cat分支。提交失败的时候不要关闭窗口,直接点击“拉取”按钮,拉取后又说有冲突,不要关闭窗口,直接点击“解决”按钮,解决完又提示可以提交,不要关闭窗口,直接再点击“提交”按钮。总之要临机应变),看看码云上的cat分支的情况,如下图所示:
43.png
44.png