Git建立和使用倉庫

2021-10-06 13:26:19 字數 3824 閱讀 6344

建立git倉庫有兩種方式:一種方式是把本地目錄作為git倉庫,另一種是從別的地方轉殖乙個倉庫。這兩種方式都將在自己的電腦上建立git倉庫。

倉庫裡的檔案可以修改、暫存和新增。

使用進入專案資料夾,git init把當前目錄轉化為git倉庫。

如果需要建立乙個新的目錄,則使用git init directory建立乙個名為directory的資料夾作為倉庫。

git倉庫目錄下會有乙個.git的隱藏資料夾,git倉庫.git檔案目錄一文講了一些重要的檔案(夾)。

下面的命令轉殖了乙個已存在的git倉庫,並為這個倉庫建立乙個新的目錄,也可建立乙個新的檔名。這裡的轉殖不是簡單的複製,而是收集所有的資料資訊,所有檔案的歷史都會被拉取下來。

git clone 

git clone [新的檔名]

接下來就可以使用倉庫了。

git倉庫中所有的檔案都有被追蹤和未被追蹤兩種狀態。追蹤的檔案指git知道的檔案,可以是未修改的、修改的或暫存的。未被追蹤的檔案是那些在工作目錄下,但不在git記錄和暫存中的。

假設git倉庫中有個readme檔案,可以通過下面的命令了解檔案狀態。同時,這個命令也告訴了你正處於哪個分支。

git status readme
git status可以檢視所有檔案的狀態。

下面的命令可以更簡化地顯示資訊。

git status -s

git status --short

如果檔名前是??,則表示檔案未被追蹤;如果是a,則表示已經新增;m表示檔案被修改。

git diff可以檢視那些未被新增檔案的修改內容。git diff --stage可以檢視那些已經新增到暫存階段的檔案修改過的內容,git diff --cache同義。

通過下面的命令來追蹤文(夾)。

git add readme
該檔案會被新增到暫存區。暫存區是git中很重要的部分,這些檔案並不會直接修改歷史版本,而是放在暫存區中,可以接受進一步的修改。

如果乙個已經被追蹤的檔案被修改了,也需要使用此命令新增到暫存區。

檔名可設為「-u」選項,表示把所有檔案一起提交。

如果希望乙個資料夾被忽略掉,不被追蹤,則建立乙個.gitignore列表檔案。 這裡列舉了一些例子。

當修改好內容並新增後,git commit可以提交修改,而那些未被新增到暫存階段的修改則不會被提交。在提交時輸入一些資訊,否則無法提交。或者,使用-m選項輸入資訊進行提交。

git commit -m "資訊"
每一次提交,都是一次對專案的一次快照,可以恢復,也可以比較。

上面第3、4步需要連續使用,稍微有點複雜,如果想要跳過第3步,則加乙個-a引數即可

git commit -a -m "資訊"
如果要修改最近一次提交,使用--amend選項。

git commit --amend
如果需要從git管理中刪除檔案,則使用git rm命令,在commit之後,同時會把檔案從工作目錄中刪除。

如果只是簡單地從檔案目錄刪除該檔案,狀態只會變為未暫存。而如果使用git rm,它會暫存這一狀態。提交之後,這個檔案就會消失,並且不會被git追蹤。

如果要強制刪除乙個已經被修改或者加入到暫存區的檔案,則需要加上-f選項。

如果想讓git不去追蹤檔案,又不想讓它從目錄中刪除,則加上--cache選項。

git rm --cache readme
git mv命令重新命名檔案,把readme改名為readme。

git mv readme readme
git log可以檢視提交歷史。-p(或-patch)可以顯示每次提交的不同之處。

git log -2
要檢視更簡略的狀態資訊可以使用--stat選項。

git log --stat
--pretty選項可以改變輸出格式,其值可以是onelineshortfullfuller。使用format值還可以自定義輸出。

git log --pretty=oneline

git log --pretty=format:"%h - %an, %ar : %s"

format選項可以配合--graph使用,可以展示分支和合併歷史。

git log --pretty=format:"%h %s --graph
還可以對檢視日誌範圍進行限制。-表示檢視最近n次提交。

git log -2
也可以使用--since--until選項,檢視最近2周提交。

git log --since=2.weeks
這種方式還可以自定義時間。

git log --since=2020-1-1

git log --since="three days ago"

還可以講日誌輸出到檔案。

git log -- path/file
另外,gitk命令會彈出乙個圖形化介面,可檢視版本演進。

如果提交完成後發現遺漏了某個檔案,可以先把該檔案加入暫存區,再使用--amend選項提交。

git add forgetten_file

git commit --amend

提交之後還可以修改上一次提交時的資訊。

如果已經新增了乙個檔案到暫存區,想要撤銷新增使用下面的命令。

git add readme

git reset head readme

如果已經修改了某個檔案,想要撤銷修改使用下面命令。

git ckeckout -- readme
git將用上次提交的檔案替換已修改的檔案。

從2.23.0版本開始,git restore替換了git reset

git restore --staged readme
該命令也替換了git checkout

git restore readme

Git 遠端倉庫的建立和使用

生成 ssh key 第 1 步 建立 ssh key。在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id rsa和id rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟 shell windows 下開啟 git bash 建立 ssh key s...

建立和使用私有倉庫

安裝docker後,可以通過官方提供的registry映象來簡單搭建一套本地私有倉庫環境 sudo docker run d p 5000 5000 registry預設情況下,會將倉庫建立在容器的 tmp registry目錄下。可以通過 v引數來將映象檔案存放在本地的指定路徑上。例如下面的例子將...

Git倉庫建立和檔案提交

參考質料 廖雪峰的個人 git什麼是git 乙個分布式版本管理系統 作用 管理你的歷史檔案,檔案修改歷史,團隊協作。windows下安裝git 到鏈結下 載安裝包,國內映象 雲盤 安裝完成後開啟gitbash 輸入 git config global user.name enter you name...