摸索中使用Git

搭建Git Server

cd my_project
git init
git add .
git commit -m 'first commit'
cd ..
git clone --bare my_project my_project.git

這樣就可以通過(guò)SSH去clone my_project.git 這個(gè)倉(cāng)庫(kù)了。
不過(guò)這樣還有很多問(wèn)題。首先是權(quán)限,先要?jiǎng)?chuàng)建一個(gè)group:

groupadd git

把相關(guān)的賬號(hào)加入到這個(gè)group:

gpasswd -a use1 git

還要把倉(cāng)庫(kù)的權(quán)限設(shè)為git組可讀寫(xiě):

chown -R root:git .
chmod -R 771 .

另外,要把倉(cāng)庫(kù)設(shè)置成shared,我之前寫(xiě)過(guò)一篇文章解決這個(gè)問(wèn)題,在這里。
書(shū)上有個(gè)寫(xiě)法:

git init --bare --shared

不過(guò)我沒(méi)試過(guò),下次再建server時(shí)可以試試。

配合遠(yuǎn)端server使用Git

本地使用基本沒(méi)有問(wèn)題,按照一般的教程來(lái)就可以。關(guān)于遠(yuǎn)端的使用,好像沒(méi)有發(fā)現(xiàn)系統(tǒng)性講解的教程,只能在使用中發(fā)現(xiàn)問(wèn)題、解決問(wèn)題。

分支關(guān)聯(lián)

如果本地還沒(méi)有遠(yuǎn)端的分支,可以這樣:

git checkout --track origin/my_branch

會(huì)在本地創(chuàng)建一個(gè)分支my_branch并與遠(yuǎn)端的origin/my_branch建立關(guān)聯(lián)。
如果本地已經(jīng)有了my_branch,并且想和遠(yuǎn)端的建立關(guān)聯(lián),則要這樣:

git branch --set-upstream my_branch origin/my_branch

要確認(rèn)分支是否關(guān)聯(lián)上了,可以打開(kāi).git/config,看有沒(méi)有下面這些:

 [branch "my_branch"]
         remote = origin
         merge = refs/heads/my_branch

分支關(guān)聯(lián)上以后,pull時(shí)就不需要指定分支了,直接在當(dāng)前分支下git pull就可以更新當(dāng)前分支。其它的用處還不知道,沒(méi)敢試。

fetch

關(guān)于fetch我還不是十分理解。git fetch origin my_branch是不能把這個(gè)分支最新的代碼fetch下來(lái)的。只能用git fetch origin,把所有的分支都fetch下來(lái),然后到相關(guān)的分支去merge。

git fetch origin
git merge origin/my_branch

push

遇到過(guò)一個(gè)問(wèn)題,要回滾遠(yuǎn)端的代碼。先reset到需要回滾的點(diǎn):

git reset --hard <commit_id>

然后修改代碼,改完后,push時(shí)要加上--force

git push origin my_branch --force

否則會(huì)提示什么不是fast-forward,不讓提交。也不知道這么搞會(huì)不會(huì)有什么問(wèn)題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容