Windows下Git的安裝與配置(Cygwin)


引子

Git應該是目前最火熱的源代碼管理軟件,雖然是從Linux中走出來的,但在Windows端的表現也是非常搶眼,大有取代SVN之勢。
但是剛開始用Git的時候,總感覺不是很順手,沒有SVN好用,在SVN的世界里最出名的客戶端管理工具TortoiseSVN,讓我們的開發工作變得異常舒適。雖然Tortoise公司也出了tortoisegit,但因為剛開始對Git的工作原理不是很熟悉,再加上對Linux的白痴水平,結果就是各種不適應。最近接到公司內部一個小工具的開發任務,因為主要是我一個人開發,可能會在家里進行測試,衡量在三,決定使用Git來管理,其實對於這種項目SVN是最適合的工具,但這次主要出於學習Git的出發點來考慮。這篇文章說到底是一篇學習Window下Git開發環境搭建的筆記。

軟件先行

目前windows平台有兩個模擬*nix like運行環境的工具:cygwinmsys;Git在cygwinmsys下都有相應的移植版本。現在WIndows下有非常多的Git用戶,但Git為什么不出一個Windows Native版呢?雖然我沒看過Git的源代碼,但網絡上有研究過的高人講,Git里面使用了大量的*nix平台的native api,而這些API在Windows下是沒有的,所以必須要cygwin、msys這樣的一個蹭層來滿足軟件移植的要求。msysGit上目前Windows上用得非常多的一個基於msys平台的Git移植版本,但個人覺得Cygwin的命令行窗口的功能要比msys好很多,而且Cygwin 下很容易獲得用到的開源工具。當然這個要仁者見仁了,總之你覺得那個好就用那一個。

這里主要介紹一下Cygwin下Git的安裝與配置。

Cygwin安裝

Cygwin 的安裝非常簡單,先在其官方網站 http://www.cygwin.com/下載安裝程序—一個只有幾百KB的setup.exe文件,然后即可開始安裝。
(1) 安裝過程中會讓用戶選擇安裝模式:通過網絡安裝、下載后安裝或者通過本地軟件包緩存(安裝時自動在本地目錄下建立的軟件包緩存)安裝。如果是第一次安裝 Cygwin,因為本地尚沒有軟件包緩存,當然只能選擇從網絡安裝,

image

(2) 選擇安裝目錄,默認為 C:\cygwin ,如下圖所示。這個目錄將作為 Cygwin shell 環境的根目錄(根卷),Windows 的各個盤符將掛載在根卷的一個特殊目錄之下。

image

(3) 設置本地軟件包緩存目錄,默認為setup.exe 所處的目錄,

image

(4) 設置網絡連接方式是否使用代理等,如圖所示。默認會選擇第一項:“直接網絡連接”。如果一個團隊有很多人要使用 Cygwin,架設一個能夠提供軟件包緩存的 HTTP 代理服務器會節省大量的網絡帶寬和大量的時間。

image

(5) 選擇一個 Cygwin 源,如圖所示。如果在上一個步驟中選擇使用 HTTP 代理服務器,就必須選擇 HTTP 協議的 Cygwin 源。

image

(6) 從所選的 Cygwin 源下載軟件包索引文件,然后顯示軟件包管理器界面,我們要在這一步選擇安裝Git相關的軟件包。默認安裝的 Cygwin 沒有安裝 Git 軟件包。如果在首次安裝過程中忘記通過包管理器選擇安裝 Git 或其他相關軟件包,可以在安裝后再次運行 Cygwin 的安裝程序 setup.exe 。當再次進入Cygwin 包管理器界面時,在搜索框中輸入 git,這里我們需要安裝下面幾個軟件,

  • git
  • git-completion: 提供 Git 命令的自動補齊功能。安裝該軟件包時會自動安裝其所依賴的 bash-completion 軟件包。
  • vim: Git 默認的編輯器。
  • openssh: SSH 客戶端,為訪問 SSH 協議的版本庫提供支持。

image

Cygwin 的配置和使用

運行 Cygwin后會進入 shell 環境並見到熟悉的 Linux 提示符,可以通過執行 cygcheck 命令來查看 Cygwin 中安裝的軟件包的版本。例如,查看 Cygwin 軟件包本身的版本:

cygcheck -c cygwin

image

Cygwin 中訪問 Windows 的各個磁盤目錄。首先,我們在Cygwin中執行mount這個命令,

image

也就是說,在 Cygwin 中以路徑 /cygdrive/c/Windows來訪問Windows 下的 C:\Windows 目錄。

設置Cygwin的Home目錄

修改 Cygwin 啟動的批處理文件(如:C:\cygwin\Cygwin.bat ),在批處理的開頭添加如下的一行代碼,就可以防止其他軟件在 Windows 引入的 HOME 環境變量被帶入到 Cygwin 中。

Set HOME=d:\cygwin\home //這個根據你自己的目錄來設置

命令行補齊忽略文件名大小寫

Windows 的文件系統忽略文件名的大小寫,在 Cygwin 下最好對命令行補齊進行相關設置,以忽略大小寫,這樣使用起來更方便。編輯文件 ~/.inputrc ,在其中添加設置“set completion-ignore-case on”,或者取消已有的相關設置前面的井(#)號注釋符。修改完畢后,再重新進入 Cygwin,這樣就可以實現命令行補齊對文件名大小寫的忽略。

Git配置

1. 由於在windows平台下,所以可以禁止Git對文件權限的跟蹤

git config --system core.fileMode false

2. 解決Git命令輸出中文文件名的顯示問題

git config --system core.quotepath false

3. Git命令輸出中開啟顏色顯示

git config --system color.ui true

4. 配置username和email

git config --global user.name "Jim"
git config --global user.email Jim@gmail.com

5. 通過命令來查看Git設置

git config -l

    可以得到如下的結果,

user.name=Jim
user.email=Jim@gmail.com
color.ui=true
core.filemode=false
core.quotepath=false
core.repositoryformatversion=0
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
credential.helper=cache --timeout=3600

6. 配置alias命令別名

git config --system alias.st status
git config --system alias.ci "commit -s"
git config --system alias.co checkout
git config --system alias.br branch
git config --system alias.ll "log --pretty=fuller --stat --graph --decorate"
git config --system alias.ls "log --pretty=oneline --graph --decorate"
git config --system alias.ss "status -sb"

Git訪問SSH 服務

這里的SSH還是指Cygwin里面的SSH,也就是OpenSSH。這塊其實可以參考一下GitHub上的幫助頁面https://help.github.com/articles/generating-ssh-keys

1) 生成SSH密鑰對

ssh-keygen -t rsa -C "jim@gmail.com"

    你會看到如下的輸出:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/eason.wu/.ssh/id_rsa):
Created directory '/home/eason.wu/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/eason.wu/.ssh/id_rsa.
Your public key has been saved in /home/eason.wu/.ssh/id_rsa.pub.
The key fingerprint is:
58:7d:74:d9:d6:52:79:24:d7:18:e4:dd:bd:03:28:94 jim@gmail.com
The key's randomart image is:
+--[ RSA 2048]----+
|         .. ..=BB|
|        .E ..o+=O|
|        .......o=|
|       o  ..  . .|
|      . S      o |
|                .|
|                 |
|                 |
|                 |
+-----------------+

2) 連接GitHub

這部分可以參考 https://help.github.com/articles/generating-ssh-keys

3) Clone項目

image

小結

利用Git來進行源代碼管理是一個長期學習的過程,對於Git的理解也必須在不斷的使用中體會。 總之, 每天進步一點點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM