git的安裝和使用

2021-09-01 16:41:03 字數 2574 閱讀 7569

git是個分布式的版本控制工具。它可以使用git協議,http協議和本身linux常用的ssh協議進行遠端傳輸。

具體的知識可以搜尋git伺服器出來的這篇文章: 。

我這裡要介紹的是git的最簡單使用方法(很通用和方便的方法)。

第一步、linux上安裝git軟體,yum install git-core;

第二步、在某個目錄下新建乙個目錄用來作為**倉庫。比如:mkdir /data/codes

第三步、初始化**倉庫。cd /data/codes; git init

第四步、將需要託管的**拷貝到倉庫裡。cp /data/c/* /data/codes -r

第五步、將**新增到**倉庫:git add *

第六步、提交:git commit -m "新增**託管"

至此,「伺服器」側的**倉庫就已經建好了。我們在該目錄下執行git branch -a可以看到當前的分支只有master。

這樣就可以到別的機器上,利用ssh協議將這個**轉殖過來,比如伺服器ip為192.168.1.10,這上面建立使用者git,user add git; passwd git;給密碼pd123;我們到另一台ip為192.168.1.11的主機上操作:

git clone ssh:

這樣**就被轉殖下來了。

不過 現在只有master乙個分支,10主機上當前工作分支和11主機相同,所以為了安全,git預設11主機不能push**,我們在11上建立dev分支:

git branch dev

git checkout dev

這樣11上就建立了dev分支並且切換過來了。我們將dev分支push到伺服器上:

git push origin dev

這樣 10主機上就會有dev分支了,我們到10上執行git branch 就能看到。

以後修改了**,就可以提交到10上的dev分支了。

如果 **穩定了,想要合併到master,需要到10上執行git merge dev,這樣就將dev分支合併到當前分支(master)了。

當然 分支管理是靈活的,比如10上可以切換到dev分支,這時候11就無法提交dev分支裡的修改了,但可以提交master的分支。

【高階設定】

配置 .git/config裡增加如下兩行:

[receive]

denycurrentbranch = ignore

增加後可以解決無法提交到相同工作分支的問題,但是提交後在伺服器側需要執行git reset --hard才能看到提交後的修改。

建議別用這個方式,使用不同分支提交,用merge合併更安全。

【實用技巧】

開啟使用者主目錄下的.bashrc(mac os裡開啟.bash_profile),

vim ~/.bashrc

在最後加上如下三行:

white="\[\033[0m\]"

green="\[\033[1;32m\]"

export ps1="\u@\h \w$green\$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/[\1]/')$white\$"

這樣,就可以在系統預設的提示符的基礎上,增加使用者切換至某倉庫目錄下用綠色字型顯示分支名;

vim ~/.gitconfig

增加如下幾行:

[diff]

tool = vimdiff

[difftool]

prompt = false

[alias]

logp = log --pretty=format:'%h [%ci] (%an) -%c(green)%d%creset %s' 

增加後,在**倉庫裡執行git difftool就可以用vimdiff的方式檢視差異,執行git logp就可以以簡潔的彩色文字檢視git log。

上面兩種配置對於git倉庫的修改和檢視差異、日誌都是很實用的技術,建議進行配置。

對於架設web伺服器的人來說,如果**都是解釋執行的,那麼可以這樣做:

a主機192.168.1.10為web伺服器;b主機192.168.1.11為開發機。

a上的普通使用者user1使用者目錄下/home/user1/建立原始**倉庫(也可以在別處,只要這個使用者可寫),目錄名為web伺服器需要的那個目錄名如wwwroot,然後git init,並新增好**,也可以在這裡建立dev分值,但切換到master裡工作。

在web伺服器主目錄下需要布置**的位置進行git clone /data/wwwroot,然後切換分支到dev,git checkout dev;

在開發機b上git clone ssh:並切換分值到dev,git checkout dev;

在b上開發**,除錯好後,提交到伺服器,git commit -a "***xx"; git push;

在a上的/home/usr1/wwwroot下已經儲存了這個提交了,不必理會這個目錄,去/data/wwwroot下執行git pull,就可以把最新的dev**拉下來,怎樣,是否方便呢?當**穩定時,可以去/home/user1/wwwroot下將dev**合併到master,git merge dev。

git 的安裝和使用

注 這些配置將出現在git提交日誌中,作為author的標識 git branch 該命令只是在本地中建立乙個分支 將本地分支提交到遠端分支git push origin 切換到master git checkout master 拉取最新的master git pull origin master...

git 的 安裝和使用

git 是乙個快速 可擴充套件的分布式版本控制系統,它具有極為豐富的命令集,對內部系統提供了高階操作和完全訪問。一 git安裝 1 二進位制方式安裝 sudo apt get install git core 安裝完成後,在終端中輸入 git 就可以看到相關的命令了。如果只是需要使用git來管理本地...

git 的安裝和使用

注 這些配置將出如今git提交日誌中,作為author的標識 git branch 該命令僅僅是在本地中建立乙個分支 將本地分支提交到遠端分支git push origin 切換到master git checkout master 拉取最新的master git pull origin maste...