本文假设你已经安装好了 Git,并且一些全局的设置(比如用户名,邮箱等)已经被正确的设置了。如果有这方面的问题,请参考上一片文章——Git 命令入门。
Git 命令在帮助开发者梳理自己的开发流程方面是一个非常不错的工具。它对编程语言和文件的结构都没有要求,它让开发者自由的决定如何组织他们的工作流。
在使用 Git 用于开发工作前, 最好能够针对自己的情况,制定自己开发中的工作流。通常工作流是基于你自己项目的大小和规模来制定的。目前,一个简单的单分支的工作流已经足够帮助我们理解 Git了。
通常 Git 项目的第一个分支缺省都被命名为“master”分支。在本系列教程中接下来的章节,你将会学会如何去创建其他分支。
1. 创建自己的 “workspace”
就像你喜欢拥有一个舒适又干净的工作环境,当你写代码的时候,也会有同样的需求。特别是,当你同时参与多个项目的开发时候,这种需求变得更加的明显。
一个好的可行性建议:在你的 home 目录下创建一个“Git”目录,并为每个项目创建一个单独的子目录。
我们要做的第一件事情就是创建我们自己的“workspace environment”:
1 2 |
$ mkdir -p ~/git/testing ; cd ~/git/testing |
接下来,我们需要创建一些属于我们自己项目的文件。在我们的“repo”里创建一个测试文件:
1 2 |
$ touch file |
文件创建完成后,我们需要使用 Git 记录文件变化。
接下来我们解释这个过程。
2. 将一个已有项目转化为通过 Git 跟踪的“repo”
当你的所有文件都准备就绪后,你需要告诉 Git 命令,你想使用当前的目录作为 Git 的一个初始 repo:
1 2 |
$ git init |
在目录“/home/user/git/testing/.git/”下,新创建一个空的repo,然后就可以继续添加文件了。
接下来的命令将添加一些文件和目录到你新创建的 repo 里:
1 2 |
user@host ~/git/testing $ git add . |
每次你新增后者修改文件的时候,需要提高供一个“commit”注释。
3. 创建“commit”消息
“commit”注释是一个简短的说明,用来描述你都做了哪些修改,这需要你在把修改的代码上传(就是所谓的 push)。当你的项目是多人参与协作完成的时候,“坚持把注释写好”是个很好的习惯。好的注释可以帮助其他人更容易的理解你所做的改动。
“commit”注释通常都很短,大约 1-2 行,用来解释你所修改的内容。建议大家把修改的内容尽可能拆分成一个个独立的 patch,这样其他参与的同学比较容易理解你的 patch,更容易“review”。
只要你喜欢,你可以提交任意多个“commit”。唯一的一个要求就是每个 commit 必须关联至少一个文件的修改;每次 push 至少要有一个 commit 。
1 2 3 4 5 |
$ git commit -m "Initial Commit" -a [master (root-commit) 1b830f8] initial commit 0 files changed create mode 100644 file |
上述命令中更有两个重要的参数:
- “-m”:用来指定我们要添加的注释内容
- “-a”:我们希望提交所有新添加或者修改的文件
除非是第一次提交的情况,我们一般不提倡这种使用方法。建议每次提交时候,都明确的指明要提交的文件名或者目录名字。比如像下面这样:
1 2 |
$ git commit -m "Initial Commit" file |
File 代表要被 commit 的文件,如果想 commit 多个文件,只需要使用空格把各个文件隔开。
4. Pushing changes to a remote server
到目前为止,我们做的所有 Git 操作都是针对本机上的操作,如果你只是想高效的管理你本地的文件,这些已经足够了。如果你参与到一个团队协作开发的项目,那么你还需要把你的修改 push 到远程的 Git 服务器上。下面我们就介绍如何进行操作:
要想推送到远程的服务器,我们必须提供一个 URL,并起一个合适的名字:
1 2 3 4 5 |
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 必须指向一个远程服务器上已经存在的 repo。
如果你想推送代码到 GitHub 上,需要使用 GitHub 提供给你的 URL。一旦你做完上述配置,你就可以向远程推送你的代码了。你可以通过如下命令,来推送代码:
1 2 3 4 5 6 7 8 9 |
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”是这个服务的第一个分支的名字。
后续,如果你再往这个 Server 推送 commit,你可以使用简化的命令 “git push” 。
本文作者:张军伟