現在,讓我們在專案下建立乙個新的 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看到更多的資訊...