Git 提交更新到倉庫(分布式版本控制系統)

2021-08-31 03:08:51 字數 3629 閱讀 3085

現在,讓我們在專案下建立乙個新的 readme 檔案。如果之前並不存在這個檔案,使用git status命令,你將看到乙個新的未跟蹤檔案。

$ echo 'my project' > readme
$ git status

on branch master

your branch is up to date with 'origin/master'.

untracked files:

(use "git add ..." to include in what will be committed)

readme

nothing added to commit but untracked files present (use "git add" to track)

git status命令的輸出十分詳細,但其用語有些繁瑣。如果你使用git status -s命令或git status --short命令,你將得到一種更為緊湊的格式輸出。

$ git status -s

# 或$ git status --short

m readme

mm rakefile

a lib/git.rb

m lib/******git.rb

?? license.txt

此時再執行git status命令,會看到 readme 檔案已被跟蹤,並處於暫存狀態。

$ git status

on branch master

your branch is up to date with 'origin/master'.

changes to be committed:

(use "git reset head ..." to unstage)

new file: readme

要暫存這次更新,需要執行git add命令。

# git add [檔名]

$ git add contributing.md

將"contributing.md"放到暫存區後再看看git status的輸出。

$ git status

on branch master

changes to be committed:

(use "git reset head ..." to unstage)

new file: readme

modified: contributing.md

假設此時,你想要在 contributing.md 裡再加條注釋,重新編輯存檔後,準備好提交。不過再執行git status看看。

$ vim contributing.md

$ git status

on branch master

changes to be committed:

(use "git reset head ..." to unstage)

new file: readme

modified: contributing.md

changes not staged for commit:

(use "git add ..." to update what will be committed)

(use "git checkout -- ..." to discard changes in working directory)

modified: contributing.md

檔案 .gitignore 的格式規範如下

所謂的 glob 模式是指 shell 所使用的簡化了的正規表示式。

我們再看乙個 .gitignore 檔案的例子

# no .a files

*.a# but do track lib.a, even though you're ignoring .a files above

!lib.a

# only ignore the todo file in the current directory, not subdir/todo

/todo

# ignore all files in the build/ directory

build/

# ignore doc/notes.txt, but not doc/server/arch.txt

doc/*.txt

# ignore all .pdf files in the doc/ directory

doc/**/*.pdf

github 有乙個十分詳細的針對數十種專案及語言的 .gitignore 檔案列表。

另外,你也可以在 commit 命令後新增 -m 選項,將提交資訊與命令放在同一行。

# git commit -m [提交內容說明]

$ git commit -m "story 182: fix benchmarks for speed"

[master 463dc4f] story 182: fix benchmarks for speed

2 files changed, 2 insertions(+)

create mode 100644 readme

類似的比如

$ git rm \*~

2> 如果只是簡單地從工作目錄中手工刪除檔案,執行 git status 時就會在 「changes not staged for commit」 部分(也就是 未暫存清單)看到:

$ rm projects.md
$ git status

on branch master

your branch is up-to-date with 'origin/master'.

changes not staged for commit:

(use "git add/rm ..." to update what will be committed)

(use "git checkout -- ..." to discard changes in working directory)

deleted: projects.md

no changes added to commit (use "git add" and/or "git commit -a")

如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f(譯註:即 force 的首字母)。這是一種安全特性,用於防止誤刪還沒有新增到快照的資料,這樣的資料不能被 git 恢復。

2)從 git 倉庫中移除檔案

Git 遠端倉庫(分布式版本控制系統)

如果想要檢視某乙個遠端倉庫的更多資訊,可以使用git remote show remote name 命令。git remote show remote name git remote show origin 如果你是 git 的重度使用者,那麼還可以通過git remote show看到更多的資訊...

Git 獲取倉庫(分布式版本控制系統)

如果你是在乙個已經存在檔案的資料夾 而不是空資料夾 中初始化 git 倉庫來進行版本控制的話,你應該開始跟蹤這些檔案並提交。你可通過git add命令來實現對指定檔案的跟蹤,然後執行git commit提交。新增所有的 c 檔案 git add 檔名 git add c 提交檔案到本地倉庫 git ...

Git 遠端倉庫(分布式版本控制系統)

如果想要檢視某乙個遠端倉庫的更多資訊,可以使用git remote show remote name 命令。git remote show remote name git remote show origin 如果你是 git 的重度使用者,那麼還可以通過git remote show看到更多的資訊...