GIT在Linux上的安裝和使用簡介

GIT在Linux上的安裝和使用簡介java


GIT最初是由Linus Benedict Torvalds爲了更有效地管理Linux內核開發而創立的分佈式版本控制軟件,與經常使用的版本控制工具如CVS、Subversion不一樣,它沒必要服務器端軟件支持,速度和效率也有着至關程度的提升。git

若是擁有CVS或者SVN的使用背景,那麼更熟悉的方法是客戶端-服務器端模式,全部的文件倉庫(repository)都是存放在服務器上的,用戶須要在本地安裝客戶端去服務器上的項目中獲取舊版本,提交新版本。服務器

GIT拋棄了這種模式,當用戶從遠端GIT倉庫下載一個工程(project)時,這個工程的全部文件,包括版本歷史,文件改動都會下載下來,這時 候本地GIT就演變成了一個服務器,全部的提交(check-in)、提出(check-out)都會在這個本地服務器上執行,當你肯定一項修改以後,可 以再和遠端倉庫進行合併和同步(merge)。因此,GIT的安裝和配置步驟不管在本機仍是服務器上都是徹底同樣的。編輯器

這裏簡單地介紹GIT在Linux上的安裝和使用,算作一個新手入門的簡單教程。另外,GIT是有Windows上的客戶端的。分佈式

一、下載和安裝GIT
從這裏 http://git-scm.com/download 下載GIT或者使用wget命令獲取ide

$ cd
$ wget http://kernel.org/pub/software/scm/git/git-1.7.6.tar.bz2工具

以上地址如果沒法下載到的話,請到http://download.csdn.net/detail/lovejuan007/3713236 下載ui

解壓後切換到其目錄this

$ tar xvfj git-1.7.6.tar.bz2
$ cd git-1.7.6spa

使用默認配置進行安裝,若是想修改配置,可使用 ./configure --help 來獲取幫助

$ ./configure
$ make
$ make install

二、初始化配置
GIT默認安裝在 /usr/local/bin ,安裝以後能夠驗證一下是否安裝好

$ whereis git
git: /usr/local/bin/git
$ git  --version
git version 1.7.6
$ git  --help

首先須要指定用戶名和電子郵件地址

$ git config  --global user.name 「GIT Admin」
$ git config  --global user.emal obugs.net@gmail.com

再驗證一下配置信息

$ git config  --list
user.name=GIT Admin
user.email=obugs.net@gmail.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

其實這些配置是存放在我的主目錄下的 .gitconfig 文件中的

$ cat ~/.gitconfig
[user]
name = GIT Admin
email = obugs.net@gmail.com


三、創建工程
本地存儲的任何一個目錄均可以創建GIT工程,若是已有工程位於 /home/obugs/projects/orangebugs 目錄,就能夠把這目錄定義爲GIT工程

$ cd /home/obugs/projects/orangebugs
$ git init
Initialized empty Git repository in /home/obugs/projects/orangebugs/.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 .

四、向工程添加和提交文件
這些動做和CVS、SVN等操做相似

$ git add *.java *.c
$ git commit -m ‘Initial upload of the project’
create mode 100755 Orangebugs.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

五、更改文件和提交改動
編輯文件、添加或者刪除了一些字段

$ vi Orangebugs.java

查看和GIT倉庫中的文件相比有了那些改動

$ git diff
diff  --git a/Orangebugs.java b/Orangebugs.java
index 6166ed1..fd82d32 100644
— a/Orangebugs.java
+++ b/Orangebugs.java
@@ -2,7 +2,7 @@
- public counter=10
+ public counter=55

若是要提交,須要先確保將文件添加到了臨時區域(staging area)而後才能提交,提交時會自動打開系統的默認編輯器,用戶添加一些註釋後保存並退出編輯器的時候,這些註釋就同時提交到倉庫中去了

$ git add Orangebugs.java
$ git commit
[master 80f10a9] Added password strength meter functionality
1 files changed, 56 insertions(+), 7 deletions(-)

或者,簡單一點的方法是使用 git commit -a 把上面兩個命令合二爲一。

六、查看狀態和查看註釋
若是本地的文件和遠端GIT倉庫上的文件相比沒有任何改動,則

$ 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: Orangebugs.java
#
no changes added to commit (use "git add" and/or "git commit -a")

另外,能夠用下面的命令查看文件歷史和以往的註釋

$ git log Orangebugs.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

相關文章
相關標籤/搜索