今天又學了點,記一下:
1:建立git伺服器倉庫,前提先要安裝git
1)安裝openssh-server (ssh:security shell);
sudo apt-get install openssh-server
2)建立倉庫目錄,並且初始化倉庫
mkdri server
cd server
git init
3)添加檔案到倉庫,並提交到倉庫
mkdir project
cd project
touch pro.java
git add pro.java
git commit pro.java -m'檔案提交描述' (伺服器不需要push)
4)設定用戶端可以提交代碼
開啟倉庫目錄下的.config檔案,添加如下資訊
[receive]
denyCurrentBranch = ignore
-------end-----------
2.用戶端
1.建立本地倉庫檔案,複製伺服器倉庫
mkdir gitclient
cd gitclient
git clone ssh://username@127.0.0.1/home/username/server localgit(本地倉庫名,若不加預設和伺服器同名)
此步執行用戶端會從伺服器(本機git倉庫)讀取檔案並在本地建立倉庫,並建立和伺服器同名的分支預設倉庫名origin 分支名為master
------end------
Git中從遠端分支擷取最新的版本到本地有這樣2個命令:
1. git fetch:相當於是從遠程擷取最新版本到本地,不會自動merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含義:
首先從遠端origin的master主分支下載最新的版本到origin/master分支上
然後比較本地的master分支和origin/master分支的差別
最後進行合并
上述過程其實可以用以下更清晰的方式來進行:
git fetch origin master:tmp
git diff tmp
git merge tmp
從遠程擷取最新的版本到本地的test分支上
之後再進行比較合并
2. git pull:相當於是從遠程擷取最新版本並merge到本地
git pull origin master
上述命令其實相當於git fetch 和 git merge
在實際使用中,git fetch更安全一些
因為在merge前,我們可以查看更新情況,然後再決定是否合并