1、windows下安裝msysgit作爲git的管理工具,下載地址:http://code.google.com/p/msysgit/ 。安裝成功後,可以看到git bash和git gui兩種操作方式,以下通過git bash進行操作。
2、假設欲在 I:\\code_repo\\dcshop目錄建立倉庫作爲服務端,依次執行以下命令:
cd I:\\code_repo\\dcshop #切換當前目錄到h磁盤 git --bare init --shared
最後一行git
init
的作用是創建一個空的git倉庫或重新初始化一個已存在的倉庫。bare參數的作用是讓 syncfiles目錄等價於一個赤裸的倉庫(bare repository),shared參數則指定倉庫在多個用戶間共享。由此相當於創建了一個作爲服務端的倉庫。這個倉庫的目錄結構可以和後面創建的倉庫 對比下,是不一樣的。
3、假設欲同步的文件位於d:syncfiles目錄下,現在需要把d:syncfiles目錄下的文件推送到服務端倉庫中,依次執行以下命令:
cd /d/syncfiles git init #在此目錄創建一個git倉庫 git config core.autocrlf false #可選,關閉自動將lf換行符轉換爲crlf換行符 git add . #將目錄下的全部文件添加到索引中 git commit -m "提交信息" #將變化提交到倉庫 git remote add "origin" I:\\code_repo\\dcshop //添加一個遠程倉庫,origin爲別名(git默認就是origin) git push origin master #將本地內容推送到服務端倉庫中
以上步驟完成後,本地d:syncfiles目錄下的文件即被推送到服務端倉庫中了。以後文件有改動時,可按以下步驟提交變化:
git add 改動的文件 git commit -m "提交信息" #以上步驟可以反覆進行,等工作告一段落時可再提交到服務端倉庫中 git push
4、現在假設要在e:進行同步,則步驟如下:
cd /e git clone I:\\code_repo\\dcshop #從服務端克隆出一個倉庫 git config core.autocrlf false
執行後,可在e:下看到syncfiles目錄,這個目錄的結構和d:syncfiles完全一致(同時可以比對下h:syncfiles的目錄結構,是不一樣的)。以後如果對這個目錄進行更改,可按第3步將更改推送到服務端倉庫中。
5、從服務端倉庫中同步更改。假設在d:syncfiles進行了更新並推送到了服務端倉庫,此時需要在e:syncfiles中進行同步。這個步驟包含了兩個動作:
- 從服務端倉庫取出更新版本
- 與本地倉庫進行合併
步驟如下:
cd /e/syncfiles git pull origin master
以上展示了git中常見的操作,但沒有涉及到以下內容:
- branch(分支)
- 衝突和合並
- 撤銷和恢復
要說明的是,在git中有一個默認的分支存在,即master分支(主分支,即上文命令中出現的master),該分支由git自動生成。之前我們的各個操作都是在主分支上進行的,只是我們未察覺它的存在而已。
附上我的.git/config
- [core]
- repositoryformatversion = 0
- filemode = false
- bare = false
- logallrefupdates = true
- symlinks = false
- ignorecase = true
- hideDotFiles = dotGitOnly
- [remote "origin"]
- fetch = +refs/heads/*:refs/remotes/origin/*
- url = I:\\code_repo\\dcshop
- puttykeyfile =
- [branch "master"]
- remote = origin
- merge = refs/heads/master