一、 安装与基本配置

1.1、下载与安装: ##.

Git for windows 下载地址:
https://github.com/git-for-windows/git/tags
选择需要的版本下载,下载完成后,双击安装,使用默认的安装即可,安装完成后,右键菜单就会出现 Git GUIGit Bash 两个快捷菜单,Git GUI 我们一般不用,它没命令方式强大,一般情况我们会使用Git Bash 操作。

1.2、自报家门:

Git 安装完成后,需要配置你个人的用户名和电子邮箱,这两个配置很重要,每次Git 提交时都会引用这两个配置信息,指明是谁提交了,也会随更新内容一起被永久纳入历史记录。

在你电脑的任意位置,右键 –> Git Bash ,会弹出 Git 命令框,在命令框中设置用户名与邮箱如下:

此配置会在你的电脑 C:\Users\huangkai目录下生成 .gitconfig 文件,没错,这个文件的内容就是存储以上两条命令的结果。注意,这个目录是当前登陆用户名的目录 ,我登陆的账号就是 huangkai ,如果你是用 administrator 登陆的,那这个文件应该在 C:\Users\administrator 这个目录下。

还可以使得git config –list 查看Git 的参数,如下,就有上面配置的用户名与邮箱:

二、基本操作(使用 TortoiseGit)

2.1、安装TortoiseGIt:

tortoiseGit 客户端下载地址:
https://tortoisegit.org/download/

打开此页面后,会显示最新版本下载,这里可根据你本机安装的git版本进行下载,如果你安装的是Git 版本是2.15 ,可点击 PREVIEW RELEASE 查看之前的版本进行下载,下载完成后,直接下一步,安装即可。

语言包支持:
在此下载页面下方会有各语言包支持,如果你有英文恐惧症,还是资深患者,可以根据你的系统位数下载对应的中文包。不过我强烈建议尤其是搞技术的同学们使用英文版。

下载语言包后,安装完成,然后右键 TortoiseGit  Settings 中设置对应的语言包,如下图所示,不知道为什么,我的windows 10 没有安装成功,之前在windows 7上有安装成功,可能是偶尔的人品问题,不过我还是喜欢用英文版本的,就不纠结这个了。

2.2、克隆远程到本地库

需要输入的参数:
URL : 克隆的地址
Directory: 保存在本地的目录
Branch: 分支名称,默认为 master
Load Putty Key:自动加载 ppk文件,如果不选择,你需要启动 pageant这个程序,并将 ppk文件导入到pageant中,建议选中此项,并选择ppk文件所在目录。

如何生成ppk文件?

  • 1、先生成 RSA 公钥与私钥:
    右键打开git bash,在控制台中输入以下命令:
    1
    $ ssh-keygen -t rsa -C "youremail@example.com"

然后按几次回车,就会在你电脑的C:\Users\huangkai.ssh 目录下生成 id_rsa (私钥)与 id_rsa.pub(公钥)这两个文件。

  • 2、在开始菜单中搜索,PuttyKen 双击打形式这个程序
    Conversions –> ImportKey –> 选择生成RSA 私钥的文件–> Save private key ,保存这个生成的文件到指定的目录即可。

2.3、提交

当本地文件有修改,需提交到远程服务器时,进入项目根目录,右键点击
Git Commit ->’branchName’ 这个菜单,branchName 是你当前所在分支的名称,输入提交的消息,选择需要提交的文件,然后点击下面的 Commit & Push 提交并推送到远程服务器。

2.4、更新

右键 TortoiseGit –> Pull

或者 右键 TortoiseGit –> Fetch

两者区别:
Pull: 拉下更新后会自动合并本地分支,其实是 Fetch 与 merge两个命令的合并。

Fetch: 先把更新拉下来,此时工作区不会自动合并,在用merge或rebase进行合并。

2.5、删除

如果你要删除一个没有加入到Git管理的文件或文件夹,那你可以直接删除即可,
如果你要删除一个已加入到Git管理的文件或文件夹,可以先直接删除这个文件,然后提交,
比如,删除readme.md这个文件,如下,可以看出这个文件的状态为 missing

你也可以选择需要删除的文件,右键 TortoiseGit –> Delete –> Remove ,此时,选中的文件就会从本地工作区删除,再执行提交操作如下:可以看出该文件的状态为Deleted.

2.6、版本回退

在项目根目录下右键TortoiseGit –> Show log ,弹出对话框如下,显示的是所有提交的历史记录

每点击每个提交的记录,在下方会有本次提交的修改,如果你要回退到这个版本,可以选择这次提交的记录后 右键  Reset “master” to this 弹出如下:

reset Type:

  • soft: 软重置,不会改变工作区和索引
  • mixed: 混合,保持工作区不变,重置索引文件
  • hard:重置工作区和索引,会丢弃在本地的变更

选择Hard –> Ok ,此时,你的工作区应该就回退到此版本了。如果你再使用

TortoiseGit –> Show log 查看日志记录,只会显示到回退版本的提交记录。
注意,此时你要提交修改到远程服务器,会提交失败,因为你的工作区不是最新的版本
如果你又想回到最后提交的版本,在项目根目录下 右键 TortoiseGit –> Show reflog,会显示各种版本号,选择你需要指定退回的版本号id ,右键 –> Reset “master” to this ,此时,你的工作区又是当前最新的版本。

2.7、撤消修改

选择需要撤消修改的文件,右键 TortoiseGit –> Revert
注意,此操作会丢失本地的修改,无法找回,请慎用!!!

2.8、解决冲突

测试例子:
Readme.md文件内容如下:

1
SDFSDFADFADFS

UserA 修改readme.md文件,并提交

1
2
SDFSDFADFADFS
abceda

UserB 也修改了readme.md文件

1
2
SDFSDFADFADFS
hello

此时,用户B想要提交文件,先更新项目,更新项目时,会报错,如下:

解决办法:

  • 1、先把自己的代码保存一个版本隐藏起来
    右键 TortoiseGit –> Stash Save 输入消息后保存。保存成功后,此时你项目的所有文件都应该是绿色的勾
  • 2、重新更新项目
    右键TortoiseGit –> pull
    此时更新下的项目就是UserA 服务器上最新的项目
  • 3、把隐藏的代码取回来
    右键 TortoiseGit –> Stash Pop
    此时会弹出框告诉你代码有冲突,有冲突的文件也变成了黄色感叹号,并询问是否需要解决它
  • 4、编辑冲突
    上一步点击是后,会弹出如下冲突列表对象框,你需要双击每个文件依次解决冲突

双击readme.md文件,弹出冲突编辑对话框如下

如上,红色的行表示为有冲突的地方,你可以光标指定批有冲突的地方,右键会弹出菜单:
Use this text block: 使用此文本块
Use this whole file: 使用整个文件
Use text block from right before left 优先使用左边文本块
Use text block from left before right 优先右边文本块

可根据你的选择进行编辑冲突,最后要保证下面合并后的内容不能有红色的行,然后点击菜单栏中的的 mark as resolved(标记为解决)。关闭此窗口,冲突解决完成。然后,你就可以继续提交你本地的修改了。