如何有效地使用Git

这里是一些使用Git更有效的提示。

本文假设您已安装了git,并且您的全局配置设置(即用户名和电子邮件)已正确设置。 如果不是的话,请参考git的入门教程

Git是一个非常有用的软件,帮助简化编程项目的开发。 它没有语言要求或文件结构要求,让开发人员决定如何构建他们的工作流程。

在使用git进行开发之前,最好计划你的工作流程。 工作流决策通常基于项目的大小和规模。 为了获得对git的基本了解,一个简单的单分支工作流程就足够了。 默认情况下,任何git项目的第一个分支被称为“主”。 在本系列的以下教程中,您将了解如何创建其他分支。

让我们创建我们的第一个项目并称之为“测试”。 (如果您已经有要导入的git就可以跳过了一个项目, 该部分 )。

创建工作区

就像你想有一个良好,干净的工作环境,同样的想法适用于你做你的编码,尤其是如果你要同时贡献给一些项目。 一个好的建议可能是在您的主目录中有一个名为git的文件夹,其中包含每个单独项目的子文件夹。

我们需要做的第一件事是创建我们的工作区环境:

user@host ~ $ mkdir -p ~/git/testing ; cd ~/git/testing

上面的命令将完成两件事:1)它在我们的主目录中创建一个名为“git”的目录,然后在被称为“testing”的目录中创建一个子目录(这是我们项目实际存储的地方)。 2)它带给我们项目的基本目录。

一旦进入该目录,我们需要创建一些将在我们项目中的文件。 在此步骤中,您可以跟踪并创建一些虚拟文件以进行测试,或者可以创建希望作为项目一部分的文件/目录。

我们将创建一个测试文件以在我们的存储库中使用:

user@host ~/git/testing $ touch file

一旦所有项目文件都在您的工作区中,您需要使用git开始跟踪您的文件。 下一步解释了这个过程。

将现有项目转换为工作区环境

一旦所有的文件都在你的git工作区,你需要告诉git你想使用你当前的目录作为git环境。

user@host ~/git/testing $ git init
Initialized empty Git repository in /home/user/git/testing/.git/

一旦您已经初始化了新的空存储库,您可以添加您的文件。

以下将添加所有文件和目录到您新创建的存储库:

user@host ~/git/testing $ git add .

在这种情况下,没有输出是良好的输出。 不幸的是,git并不总是通知你如果有事情。

每次添加或更改文件时,都需要写入提交消息。 下一节将介绍提交消息是什么以及如何编写。

创建提交消息

提交消息是一个简短的消息,说明您所做的更改。 在发送您的编码更改(这被称为推送)之前是必需的,它是一个很好的方式来与您的合作开发人员沟通您的更改期望。 本节将解释如何创建它们。

提交消息通常相当短,在一个和两个句子之间解释你的改变做了什么。 在你做推送之前,提交每个单独的更改是一个好的习惯。 你可以推送尽可能多的提交,你喜欢。 任何提交的唯一要求是它涉及至少一个文件,它有一个消息。 推送必须至少有一个提交。

继续我们的示例,我们将为我们的初始提交创建消息:

user@host ~/git/testing $ git commit -m "Initial Commit" -a
[master (root-commit) 1b830f8] initial commit
 0 files changed
 create mode 100644 file

上面的命令有两个重要的参数。 第一个是-m,它表示我们的提交消息(在这种情况下是“初始提交”)将遵循。 其次,-a表示我们希望我们的提交消息应用于所有添加或修改的文件。 这是第一次提交,但一般你应该指定我们要提交的单个文件或目录。

我们也可以做:

user@host ~/git/testing $ git commit -m "Initial Commit" file

指定要提交的特定文件。 要添加其他文件或目录,只需在命令末尾添加一个空格分隔列表。

将更改推送到远程服务器

直到这一点,我们已经在我们的本地服务器上做了一切。 这当然是一个选择本地使用git,如果你想有任何简单的方法来控制你的文件的版本。 但是,如果要与一个开发人员团队合作,则需要将更改推送到远程服务器。 本节将解释如何做到这一点。

能够将代码推送到远程服务器的第一步是提供存储库所在的URL并给它一个名称。 要配置要使用的远程存储库并查看所有远程数据库的列表(可以有多个远程数据库),请键入以下内容:

user@host ~/git/testing $ git remote add origin ssh://git@git.domain.tld/repository.git 
user@host ~/git/testing $ git remote -v
origin	ssh://git@git.domain.tld/repository.git (fetch)
origin	ssh://git@git.domain.tld/repository.git (push)

第一个命令添加一个名为“origin”的远程,并将URL设置为ssh://git@git.domain.tld/repository.git。

你可以命名你的远程任何你想要的,但是URL需要指向一个实际的远程仓库。 例如,如果您想将代码推送到GitHub,则需要使用它们提供的存储库URL。

一旦配置了远程,您现在可以推送代码。

您可以通过键入以下内容将代码推送到远程服务器:

user@host ~/git/testing $ git push origin master
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 266 bytes, done.
Total 3 (delta 1), reused 1 (delta 0)
To ssh://git@git.domain.tld/repository.git
   0e78fdf..e6a8ddc  master -> master

“git push”告诉git我们要推送我们的更改,“origin”是我们新配置的远程服务器的名称,“master”是第一个分支的名称。

将来,当您提交要推送到服务器时,您只需输入“git push”即可。

我希望这篇文章为您提供了一个基本的了解如何git可以有效地使用一个开发团队。 本系列的下一篇文章将更深入地分析git分支,以及为什么它们如此有效。

作者:Jason Kurtz