建立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
選項可以改變輸出格式,其值可以是oneline
、short
、full
和fuller
。使用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...