Git是Linus Torvalds和Linux开发社区的其他人于2005年创建的开源分布式版本控制系统。Git可以处理许多类型的项目,但是最常用于软件源代码。
版本控制是一个跟踪一段时间内对一个文件或一组文件的更改的系统。拥有这些更改的历史记录后,它可以让您稍后查找特定版本,比较版本之间的更改,恢复可能已删除的文件或将文件还原为以前的版本。
一个分布式版本控制系统意味着不同的用户维护,而不是从一个中央存储库工作自己项目的存储库。用户自动具有完整的文件跟踪能力和项目的完整版本历史记录,而无需访问中央服务器或网络。
在项目目录中初始化Git后,它将开始跟踪文件更改并将其存储为“更改集”或“补丁”。在项目上共同努力的用户提交他们的变更集,然后将其包含(或拒绝)在项目中。
了解Git项目的三个部分
Git项目将包含以下三个主要部分:
Git目录
工作目录(或工作树)
暂存区
在Git的目录(位于YOUR-PROJECT-PATH/.git/
)是其中的Git把所有东西,它需要准确地跟踪项目。这包括元数据和一个对象数据库,其中包含项目文件的压缩版本。
用户在工作目录中对项目进行本地更改。工作目录从Git目录的对象数据库中提取项目的文件,并将其放置在用户的本地计算机上。
在临时区域是一个文件(也被称为“指数”,“阶段”,或“缓存”),其存储在哪个将进入下次提交的信息。提交是指您告诉Git保存这些分阶段的更改。Git照原样拍摄文件快照,并将该快照永久存储在Git目录中。
在三个部分中,文件可以在任何给定时间处于三种主要状态:提交,修改或暂存。您修改一个文件,您在您的工作目录更改它的任何时间。其次,它的上演,当你将它移动到临时区域。最后,在提交之后提交。
安装Git
Ubuntu:
sudo apt-get install git
Windows:下载
Mac:下载
配置Git环境
Git有一个git config
允许您自定义Git环境的工具。您可以通过设置某些配置变量来更改Git的外观和功能。从计算机上的命令行界面(在Mac中为终端,在Windows中为Command Prompt或Powershell)运行这些命令。
这些配置变量的存储级别分为三个级别:
系统:位于中
/etc/gitconfig
,将默认设置应用于计算机的每个用户。要对此文件进行更改--system
,请在git config
命令中使用该选项。用户:位于
~/.gitconfig
或中~/.config/git/config
,将设置应用于单个用户。要对此文件进行更改--global
,请在git config
命令中使用该选项。项目:位于中
YOUR-PROJECT-PATH/.git/config
,仅将设置应用于项目。要对该文件进行更改,请使用git config
命令。
如果存在彼此冲突的设置,则项目级别的配置将覆盖用户级别的配置,而用户级别的配置将覆盖系统级别的配置。
Windows用户注意事项:Git .gitconfig
在$HOME
目录(C:\Users\$USER
)中查找用户级别的配置文件()。Git还会查找/etc/gitconfig
,尽管它相对于MSys根目录,这是您在运行安装程序时决定在Windows系统上安装Git的位置。如果您使用的Windows 2.x或更高版本的Git,则C:\Documents and Settings\All Users\Application Data\Git\config
在Windows XP和C:\ProgramData\Git\config
Windows Vista及更高版本上也有一个系统级的配置文件。此配置文件只能以git config -f FILE
管理员身份更改。
添加您的姓名和电子邮件
Git在提交中包括用户名和电子邮件作为信息的一部分。您需要使用以下命令在用户级配置文件下进行设置:
git config --global user.name "My Name"git config --global user.email "myemail@example.com"
更改文字编辑器
Git自动使用您的默认文本编辑器,但是您可以更改它。这是一个改用Atom编辑器的示例(该--wait
选项告诉Shell等待文本编辑器,以便您可以在程序继续之前在其中进行工作):
git config --global core.editor "atom --wait"
为Git输出添加颜色
您可以使用以下命令将外壳配置为向Git输出添加颜色:
git config --global color.ui true
要查看所有配置设置,请使用命令git config --list
。
在项目中初始化Git
一旦在计算机上安装并配置了Git,就需要在项目中对其进行初始化,以开始使用其版本控制功能。在命令行中,使用cd
命令导航到项目的顶级(或根)文件夹。接下来,运行命令git init
。这将安装一个Git目录文件夹,其中包含Git跟踪项目所需的所有文件和对象。
将Git目录安装在项目根文件夹中很重要。Git可以跟踪子文件夹中的文件,但不会跟踪相对于Git目录的父文件夹中的文件。
在Git中获得帮助
如果您忘记了任何命令在Git中的工作方式,则可以通过几种方式从命令行访问Git帮助:
git help COMMANDgit COMMAND --helpman git-COMMAND
这将在您的shell窗口中显示该命令的手册页。要进行导航,请使用向上和向下箭头键滚动或使用以下键盘快捷键:
f
或spacebar
向前翻页b
返回页面q
退出
Git和GitHub之间的区别
Git和Github是两回事。Git是版本控制系统,而GitHub是用于托管Git回购的服务,可帮助人们协作编写软件。但是,由于名称相似,GitHub建在Git之上,以及许多网站和文章并没有使它们之间的区别不够明显,所以它们常常会混淆。
Git是分布式版本控制系统。Git负责跟踪内容更改-通常是源代码文件。
有关更多信息,请参阅有关Git本身的完整文章。
的GitHub
GitHub是一项提供Git存储库托管的服务。这意味着它们提供了一个交钥匙解决方案,可以在其服务器上托管Git存储库。这对于保留存储库的备份(Git仅跟踪随着时间的推移对文件所做的更改;回购仍需要备份)很有用,并且在集中的地方可以与他人共享和共享您的代码。
GitHub不仅仅是一个Git仓库托管服务,还是一个软件伪造。这意味着它还提供了一个问题跟踪程序,用于代码审阅的工具以及用于与其他人协作和创建软件的其他工具。
GitHub并不是唯一提供这种服务的人。它的主要竞争对手之一是GitLab。有关更多信息,请参阅有关Git托管的文章。
rsa
在继续使用之前,请检查此处是否没有文件,请使用:
ls -al ~/.ssh
如果没有要列出的内容(即: No such file or directory
),请使用:
mkdir $HOME/.ssh
如果没有任何内容,请使用以下命令生成一个新的密钥源:
ssh-keygen -t rsa -b 4096 -C your@email.com
现在使用ls -al ~/.ssh
将显示我们的id_rsa.pub
文件。
将SSH密钥添加到SSH代理中:
eval "$(ssh-agent -s)" # for mac and Linux from bash
eval `ssh-agent -s`ssh-agent -s # for Windows
使用以下命令将RSA密钥添加到SHH:
ssh-add ~/.ssh/id_rsa
将密钥复制到剪贴板
clip < ~/.ssh/id_rsa.pub # Windows
cat ~/.ssh/id_rsa.pub # Linux
转到GitHub 设置页面,然后单击“新建SSH密钥”按钮,将其粘贴到生成的密钥中。
然后通过以下方式进行身份验证:
ssh -T git@github.com