Windows搭建Git、TortoiseGit
1. Git 简介:
- Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
- Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git 与 SVN 区别
GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。Git 与 SVN 区别点:
- GIT 是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
- GIT 把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
- GIT 分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。
- GIT 没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
- GIT 的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
2. Git 安装:
下载
下载地址:https://git-scm.com/downloads
安装
第一步:双击下载好的git安装包,弹出提示框,如下图:
第二步:直接点击“Next”进入下一步,选择安装路径,如下图:
第三步:选择好安装路径后,点击“Next”进入下一步,弹出安装配置窗口,包括git命令行、git图形窗口等,如下图所示:
Additional icons 附加图标
- On the Desktop 在桌面上
Windows Explorer integration Windows资源管理器集成鼠标右键菜单
- Git Bash Here
- Git GUI Here
Git LFS (Large File Support) 大文件支持
Associate .git* configuration files with the default text editor 将 .git 配置文件与默认文本编辑器相关联
Associate .sh files to be run with Bash 将.sh文件关联到Bash运行
Use a TrueType font in all console windows 在所有控制台窗口中使用TrueType字体
Check daily for Git for Windows updates 每天检查Git是否有Windows更新
第四步:按照上述默认配置,直接点击“Next”进入下一步,弹出“选择开始菜单文件夹”的窗口,如下图所示:
第五步:按照默认路径即可,直接点击“Next”,进入下一步,进入“选择Git使用的默认编辑器”窗口,如下图所示:
Use the Nano editor by default 默认使用 Nano 编辑器
Use Vim (The ubiquitous text editor) as Git's default editor 使用 Vim 作为 Git 的默认编辑器
Use Notepad++ as Git's default editor 使用 Notepad++ 作为 Git 的默认编辑器
Use Visual Studio Code as Git's default editor 使用 Visual Studio Code 作为Git 的默认编辑器
Use Visual Studio Code Insiders as Git's default editor 使用Visual Studio Code Insiders 作为 Git 的默认编辑器
第六步:点击“Next”,进入下一步,进入“调整Path环境变量”窗口,如下图所示:
配置PATH环境
Use Git from Git Bash only
This is the safest choice as your PATH will not be modified at all.You will only be able to use the Git command line tools form Git Bash.
这是最安全的选择,因为您的PATH根本不会被修改。您只能使用 Git Bash 的 Git 命令行工具。
Use Git from the Windows Command Prompt
This option is considered safe as it only adds some minimal Git wrappers to your PATH to avoid cluttering your environment with optional Unix tools . You will be able to use Git from both Git Bash and the Windows Command Prompt.
这个选项被认为是安全的,因为它只向PATH添加一些最小的 Git包,以避免使用可选的Unix工具混淆环境。 您将能够从 Git Bash 和 Windows 命令提示符中使用 Git。
Use Git and optional Unix tools from the Windows Command Prompt
从Windows命令提示符使用Git和可选的Unix工具
Both Git and the optional Unix tools will be added to you PATH
Git和可选的Unix工具都将添加到您计算机的 PATH 中
Warning:This will override Windows tools like "find and sort".Only use this option if you understand the implications.
警告:这将覆盖Windows工具,如 “ find 和 sort ”。只有在了解其含义后才使用此选项。
第七步:选第二项,然后点击“Next”进入下一步,选择HTTPS传输后端,如下图所示:
Use the OpenSSL library
使用 OpenSSL 库
Server certificates will be validated using the ca-bundle.crt file.
服务器证书将使用ca-bundle.crt文件进行验证。
Use the native Windows Secure Channel library
使用本地 Windows 安全通道库
Server certificates will be validated using Windows Certificate Stores.This option also allows you to use your company's internal Root CA certificates distributed e.g. via Active Directory Domain Services.
服务器证书将使用Windows证书存储验证。此选项还允许您使用公司的内部根CA证书,例如, 通过Active Directory Domain Services 。
第八步:选择"Use the OpenSSL library",点击“Next”进入下一步,配置行结束符,如下图所示:
Checkout Windows-style,commit Unix-style line endings
Git will convert LF to CRLF when checking out text files.When committing text files,CRLF will be converted to LF .For cross-pltform projects,this is the recommended setting on Windows ("core.autocrlf" is set to "true")
在检出文本文件时,Git会将LF转换为CRLF。当提交文本文件时,CRLF将转换为LF。 对于跨平台项目,这是Windows上推荐的设置(“core.autocrlf”设置为“true”)
Checkout as-is , commit Unix-style line endings
Git will not perform any conversion when checking out text files. When committing text files, CRLF will be converted to LF. For cross-platform projects,this is the recommended setting on Unix ("core.autocrlf" is set to "input")
在检出文本文件时,Git不会执行任何转换。 提交文本文件时,CRLF将转换为LF。 对于跨平台项目,这是Unix上的推荐设置 (“core.autocrlf”设置为“input”)
Checkout as-is,commit as-is
Git will not perform any conversions when checking out or committing text files.Choosing this option is not recommended for cross-platform projects ("core.autocrlf"is set to "false")
在检出或提交文本文件时,Git不会执行任何转换。对于跨平台项目,不推荐使用此选项(“core.autocrlf”设置为“false”)
第九步:选择第一项,点击“Next”进入下一步,配置终端模拟器,如下图所示:
Use MinTTY (the default terminal of MSYS2)
Git Bash will use MinTTY as terminal emulator,which sports a resizable window,non-rectangular selections and a Unicode font. Windows console programs (such as interactive Python) must be launched via 'winpty' to work in MinTTY.
Git Bash将使用MinTTY作为终端模拟器,该模拟器具有可调整大小的窗口,非矩形选区和Unicode字体。 Windows控制台程序(如交互式Python)必须通过'winpty'启动才能在MinTTY中运行。
Use Windows' default console window
Git will use the default console window of Windows ("cmd.exe"),which works well with Win32 console programs such as interactive Python or node.js , but has a very limited default scroll-back,needs to be configured to use aUnicode font in order to display non-ASCII characters correctly,and prior to Windows 10 its windows was not freely resizable and it only allowed rectangular text selections.
Git将使用Windows的默认控制台窗口(“cmd.exe”),该窗口可以与Win32控制台程序(如交互式Python或node.js)一起使用,但默认的回滚非常有限,需要配置为使用unicode 字体以正确显示非ASCII字符,并且在Windows 10之前,其窗口不能自由调整大小,并且只允许矩形文本选择。
第十步:选择第一项,直接点击“Next”进入下一步,配置额外选项,如下图所示:
Enable file system caching
启用文件系统缓存
File system data will be read in bulk and cached in memory for certain operations ("core.fscache" is set to "true"). This provides a significant performance boost.
文件系统数据将被批量读取并缓存在内存中用于某些操作(“core.fscache”设置为“true”)。 这提供了显着的性能提升。
Enable Git Credential Manager
启用Git凭证管理器
The Git Credential Manager for Windows provides secure Git credential storage for Windows,most notably multi-factor authentication support for Visual Studio Team Services and GitHub. (requires .NET framework v4.5.1 or or later).
Windows的Git凭证管理器为Windows提供安全的Git凭证存储,最显着的是对Visual Studio Team Services和GitHub的多因素身份验证支持。 (需要.NET Framework v4.5.1或更高版本)。
Enable symbolic links
启用符号链接
Enable symbolic links (requires the SeCreateSymbolicLink permission).Please note that existing repositories are unaffected by this setting.
启用符号链接(需要SeCreateSymbolicLink权限)。请注意,现有存储库不受此设置的影响。
第十一步:使用默认配置,直接点击“Install”开始安装,如下图所示:
第十二步:安装完成
第十三步:可以在cmd里面测试是否设置了Path,是否安装成功. 在CMD中输入 git 或者 git --version 试试
3.Git 工作流程:
一般工作流程如下:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
4.Git 工作区、暂缓区和版本库
我们先来理解下 Git 工作区、暂存区和版本库概念
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫 stage, 或 index。一般存放在
.git
目录下的 index 文件(.git/index)
中,所以我们把暂存区有时也叫作索引(index
)
。 - 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是 Git 的版本库。
5. Git 基本操作
获取与创建项目命令
git init
用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
git init
git clone
使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
git clone [url]
基本快照
git add
git add 命令可将该文件添加到缓存
git add <filename>
git status
git status 以查看在你上次提交之后是否有修改。
git status
git status -s
git diff
执行 git diff 来查看执行 git status 的结果的详细信息。
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。
- 尚未缓存的改动:git diff
- 查看已缓存的改动: git diff --cached
- 查看已缓存的与未缓存的所有改动:git diff HEAD
- 显示摘要而非整个 diff:git diff --stat
git commit
使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。
git config --global user.name 'yourname'
git config --global user.email youremail
将文件写入缓存区并提供提交注释
git commit -m 'update message'
git reset HEAD
git reset HEAD 命令用于取消已缓存的内容。
git reset HEAD -- <filename>
拉取与推送
git pull
git pull命令用于从另一个存储库或本地分支获取并集成(整合)。git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂。
git pull <
远程主机名> <远程分支名>:<本地分支名>
将远程存储库中的更改合并到当前分支中。在默认模式下,git pull
是git fetch
后跟git merge FETCH_HEAD
的缩写。更准确地说,git pull
使用给定的参数运行git fetch
,并调用git merge
将检索到的分支头合并到当前分支中。
git push
git push
命令用于将本地分支的更新,推送到远程主机。它的格式与git pull
命令相似。
git push <
远程主机名> <本地分支名>:<远程分支名>
6. Git 标签
如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag
给它打上标签。
比如说,我们想为我们的 商城 项目发布一个"1.0.0"版本。 我们可以用 git tag -a v1.0.0
命令给最新一次提交打上(HEAD) "v1.0.0" 的标签。
-a
选项意为"创建一个带注解的标签"。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签。
git tag -a v1.0.0
如果我们要查看所有标签可以使用以下命令:
git tag
7. TortoiseGit 简化操作
TortoiseGit, 中文名海龟 Git. 海龟 Git 只支持 Windows 系统, 有一个前辈海龟 SVN, TortoiseSVN 和 TortoiseGit 都是非常优秀的开源的版本库客户端. 分为 32 位版与 64 位版.并且支持各种语言,包括简体中文
下载
下载地址:https://download.tortoisegit.org/tgit/
安装包:TortoiseGit-2.6.0.0-64bit.msi
中文汉化包:TortoiseGit-LanguagePack-2.6.0.0-64bit-zh_CN.msi
安装
我们需要先安装程序包,然后安装语言包(LanguagePack). 因为TortoiseGit 只是一个程序壳,必须依赖一个 Git Core,也就是上一节我们安装的 Git. 所以安装前请确定已完成上一节的操作. 下面以64位版本为演示(64,32位除文件名不一样,其他的操作都一致)
第一步:双击TortoiseGit安装包,如图:
第二步:点击Next,进入下一步版权信息界面,如图:
第三步:点击Next,进入下一步,如图:
第四步:选择好安装路径,然后点击Next,进入下一步,如图:
第五步:点击Install,开始安装,如图:
第六步:等待安装完成,安装完成后如图:
第七步:安装完成以后在桌面任意空白地方单击鼠标右键,会在右键菜单里找到TortoiseGit,如图:
第八步:选择Settings,如图:
我们可以看到,在右边的语言里面只有英文,没有中文。接下来我们安装简体中文语言包
安装语言包
第一步:双击打开语言包安装程序
第二步:点击Next,进入下一步,如图:
第三步:等待安装完成,安装完成后如图:
第四步:进入到TortoiseGit设置界面,在右边的语言里面选择简体中文,然后点击应用,确定,汉化即完成,如图:
不勾选自动升级的复选框,可能还需要指定 Git.exe 文件的路径
第五步:再次点击鼠标右键,可以看到弹出菜单中已经变成中文. 原来的 Settings 变成 设置; Clone 变为 克隆