Linux 上的 GIT :安装、创建项目、提交文件
GIT 是最通用的分布式版本控制系统。
GIT 跟踪和处理文件更改的方式非常有效,并且与其他版本控制软件(包括 CVS 和 Subversion)跟踪更改的方式不同。
本文适用于 GIT 新手。这是一个快速入门指南,它将向您展示如何从源代码安装 GIT、创建新项目、将更改提交到 GIT 存储库。
如果您来自 CVS/SVN 背景,您习惯于客户端-服务器模型,其中存储库安装在服务器上,您将使用客户端从存储库下载项目,进行更改并将其提交到服务器中的存储库。
GIT 不使用客户端-服务器模型。当您从远程 GIT 存储库下载项目时,您会下载所有内容,包括各个文件的版本历史和更改,而您的本地 GIT 充当服务器,您可以在其中进行签入、签出和所有其他操作典型的版本控制活动。稍后当您准备好时,您可以将更改合并到远程 GIT 存储库。
因此,无论您是在本地机器上使用 GIT 来管理您自己的项目,还是在服务器上安装 GIT,其他开发人员将从那里将项目下载到他们的本地 GIT 存储库,安装和配置步骤都是完全相同的。
如果您是开发人员,您可能希望在本地计算机上安装 GIT,原因有两个:1)您喜欢使用版本控制工具在本地管理自己的项目 2)您想要修改位于远程中心的代码GIT 存储库。
如果您是系统管理员,您可能希望在服务器上安装 GIT,以便它充当中央存储库来保存您公司的所有源代码。从这里,您可以允许开发人员将项目下载到他们的本地 GIT 存储库,进行更改,然后他们可以在完成后签入到您的中央存储库。
无论您打算如何使用 GIT,安装步骤和下面提到的基本命令都是完全相同的。
1.下载并安装GIT
首先,从这里下载 GIT 。或者,直接使用 wget 下载,如下所示。
cd
wget http://kernel.org/pub/software/scm/git/git-1.7.6.tar.bz2
接下来,解压缩下载的文件。
tar xvfj git-1.7.6.tar.bz2
cd git-1.7.6
最后,使用默认配置选项安装 GIT,如下所示。如果要自定义安装,请执行“./configure –help”以查看所有可用的配置选项。
./configure
make
make install
2. 初始配置
Git 默认安装在 /usr/local/bin 下。安装 GIT 后,如下所示进行验证。
$ whereis git
git: /usr/local/bin/git
$ git --version
git version 1.7.6
$ git --help.
第一步是使用“git config”将您的用户名和电子邮件地址指定到您的 GIT 存储库,如下所示。
git config --global user.name "GIT Admin"
git config --global user.email ramesh@tiamo.com
验证git配置信息如下图。
$ git config --list
user.name=GIT Admin
user.email=ramesh@tiamo.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
此信息存储在主目录下的 .gitconfig 文件中。
$ cat ~/.gitconfig
[user]
name = GIT Admin
email = ramesh@tiamo.com
3. 创建项目
您可以将任何本地目录作为 GIT 项目(即存储库)。例如,如果您的项目位于 /home/ramesh/projects/passworddragon 下,您可以将其作为您的 GIT 项目。首先,cd 到该目录,然后执行 git init,如下所示。
$ cd /home/ramesh/projects/passworddragon
$ git init
Initialized empty Git repository in /home/ramesh/projects/passworddragon/.git/
这将在您的项目文件夹下创建一个 .git 目录。以下是 .git 目录的内容。GIT 使用此目录来存储有关它如何跟踪更改的信息。
$ ls -altr .git
total 40
drwxrwxr-x 4 git git 4096 Aug 13 22:39 refs
drwxrwxr-x 4 git git 4096 Aug 13 22:39 objects
drwxrwxr-x 2 git git 4096 Aug 13 22:39 info
drwxrwxr-x 2 git git 4096 Aug 13 22:39 hooks
-rw-rw-r-- 1 git git 23 Aug 13 22:39 HEAD
-rw-rw-r-- 1 git git 73 Aug 13 22:39 description
-rw-rw-r-- 1 git git 92 Aug 13 22:39 config
drwxrwxr-x 2 git git 4096 Aug 13 22:39 branches
drwxrwxr-x 36 git git 4096 Aug 13 22:39 ..
drwxrwxr-x 7 git git 4096 Aug 13 22:39 .
注意:如果您是系统管理员,正在尝试为您的公司创建一个 GIT 中央存储库,开发人员可以从中下载项目,您可能需要创建一个名为“git”的用户名并在此帐户下组织您的所有项目。例如:/home/git/project1、/home/git/project2 等。一旦组织好项目,cd 到项目目录,并从那里以 git 用户身份执行“git init”。
4. 将文件添加并提交到项目中
使用“git init”初始化项目后,使用“git add”添加位于该项目目录下的文件。
如果您的项目目录下有不同类型的文件,并且您希望 GIT 只管理某些类型的文件,则只将这些文件添加到 GIT 中,如下所示。此示例仅添加 *.java 和 *.c 文件。
git add *.java
git add *.c
通常,您希望将项目目录下的所有文件添加到 GIT 项目中。只需执行“git add .”,这会将当前目录中的所有文件和所有子目录添加到 GIT 项目中。
git add .
将文件添加到存储库后,您应该提交这些文件,如下所示。
$ git commit -m 'Initial upload of the project'
create mode 100755 PasswordDragon.java
create mode 100755 pwm/ui/DataManager.java
create mode 100755 pwm/ui/PasswordFrame.java
create mode 100755 pwm/tools/StrongEncryption.java
create mode 100755 pwm/tools/PasswordStrength.java
..
如果您没有如上所述使用“git config”指定您的用户名和电子邮件地址,您将收到以下错误消息。
$ git commit -m 'Initial upload of the project'
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident not allowed
5. 进行更改并提交文件
您已经安装了 GIT,创建了项目存储库,将所有文件提交到 GIT 项目。
现在是时候开始对文件进行一些更改并将其提交到存储库了。
vi PasswordDragon.java
在本地修改文件后,您可以查看更改。即您的本地副本与已在 GIT 项目中使用“git diff”提交的副本之间的差异,如下所示。
$ git diff
diff --git a/PasswordDragon.java b/PasswordDragon.java
index 6166ed1..fd82d32 100644
--- a/PasswordDragon.java
+++ b/PasswordDragon.java
@@ -2,7 +2,7 @@
- public counter=10
+ public counter=55
一旦您对其进行了修改、查看了更改并对此感到满意,您就可以将文件提交到 GIT 存储库。这是一个两步过程。首先,您应该将文件添加到暂存区,并提交到 GIT 项目,如下所示。
git add PasswordDragon.java
当您执行提交时,它将打开您的默认编辑器,您可以在其中输入评论。保存评论并退出编辑器后,它会将文件提交到 GIT 项目并显示以下消息。
$ git commit
[master 80f10a9] Added password strength meter functionality
1 files changed, 56 insertions(+), 7 deletions(-)
注意:您也可以执行“git commit -a”,这将同时执行添加和提交。
6.查看状态和提交日志
在您的本地存储库中,当您执行“git status”时,它将显示当前状态。当本地副本未更改时(或所有文件都已提交),您将看到以下消息。
$ git status
# On branch master
nothing to commit (working directory clean)
如果您对文件进行了更改,但尚未提交,您将看到以下消息。
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: PasswordDragon.java
#
no changes added to commit (use "git add" and/or "git commit -a")
您还可以查看文件的历史记录,如下所示。
$ git log PasswordDragon.java
commit c919ced7f42f4bc06d563c1a1eaa107f2b2420d5
Author: GIT Admin
Date: Sat Aug 13 22:54:57 2011 -0700
Added password strength meter functionality
commit c141b7bdbff429de35e36bafb2e43edc655e9957
Author: GIT Admin
Date: Sat Aug 13 20:08:02 2011 -0700
Initial upload of the project
- 点赞
- 收藏
- 关注作者
评论(0)