1.起步
1.1 設定username&email
$ git config --global user.name "john doe"
$ git config --global user.email [email protected]
1.2 檢視配置
git config --list
1.3 初始化倉庫、跟蹤檔案並提交
$ git init
$ git add *.c
$ git add license
$ git commit -m 'initial project version'
2.記錄檔案變化
2.1 檢視檔案狀態
$ git status -s
m readme
m lib/******git.rb
mm rakefile
a lib/git.rb
license.txt
m代表modify,有兩個可以出現的位置,
出現在右邊的 m 表示該檔案被修改了但是還沒放入暫存區,
出現在左邊的 m 表示該檔案被修改了並放入了暫存區,
兩個m表示該檔案被修改並放入暫存區後又被修改了。
2.2 新增檔案至暫存區
git add file
git add是個多功能命令:可以用它跟蹤新檔案,
或者把已修改檔案放到暫存區,還能把合併時衝突的檔案標記為已解決狀態。
注意!如果你git add之後修改檔案,這個檔案會同時出現在暫存區和非暫存區,這時git commint只提交你最後一次執行 git add 命令時的那個版本,而不是你的最新版本。
2.3 檔案對比
git diff --cached
表示暫存後(git add後)的檔案與原始版本的對比
git diff
表示未暫存(git add前)的檔案與原始版本的對比
也就是說,git add之前用git diff,之後用git diff –cached。
注意!如果暫存(git add)後又修改了檔案,
則git diff比較未暫存的檔案與暫存(git add)時的檔案。
2.4 跳過使用暫存區域(即跳過git add)
git commit -a -m 'added new benchmarks'
注意:只會提交已經跟蹤過的檔案,不會提交新新增的檔案
2.5 移除檔案(即脫離追蹤):
$ git rm projects.md
2.6 移動或重新命名
$ git mv readme.md readme
2.7 提交歷史
$ git log
2.8 取消暫存
$ git reset head file
2.9 還原檔案
$ git checkout -- file
2.10 檔案狀態變化週期圖
3.遠端倉庫的使用
3.1 檢視遠端倉庫
git remote -v
origin (fetch)
origin (push)
orgin是遠端倉庫的別名,預設origin
3.2 詳細檢視遠端倉庫
$ git remote show origin
它會列出遠端倉庫的 url 與跟蹤分支的資訊,
告訴你git pull時哪兩個分支會合併,git push時會推送到哪個分支
3.3 新增遠端倉庫
git remote add
3.4 移除遠端倉庫
$ git remote rm origin
3.5 推送至上游
$ git push origin :
3.6 檢出遠端分支(即建立本地分支)
$ git checkout -b serverfix origin/serverfix
$ git checkout --track origin/serverfix
# --track會預設建立同名分支,兩個命令作用相同,都會檢出分支並指定追蹤分支
3.7 檢視追蹤分支(即本地分支對應的遠端分支)
$ git fetch --all
$ git branch -vv
# -vv並沒有連線伺服器,所以需要先fetch,
# -vv還能夠檢視本地分支是否落後遠端分支
追蹤分支:如果你在git pull或git push時沒有顯式指定遠端分支,則預設追蹤分支為對應的遠端分支
3.8 修改當前分支的追蹤分支
git branch --set-upstream-to origin/serverfix
# --set-upstream-to也可以用-u代替
4.更新**
git pull與git fetch的區別
git pull origin master
# 相當於從遠端獲取最新版本並merge到本地
$ git fetch origin
# 從遠端獲取最新版本,但不會自動建立本地分支,
# 只有乙個不可以修改的 origin/master 指標,接下來你可以選擇merge或checkout
$ git fetch origin master:tmp
# 從遠端倉庫master分支獲取最新,checkou到本地建立tmp分支
$ git diff tmp
# 將當前分支和tmp進行對比
$ git merge tmp
# 合併tmp分支到當前分支
5.分支
5.1 新建分支
git branch branchname
5.2 刪除分支
git branch -d branchname
5.3 檢視所有分支&當前分支
git branch -a
Git各種取消
1 commit取消,保留修改 git reset soft head 或git reset soft head 2 commit取消,不保留修改 git reset hard head 或git reset hard head 3 merge錯分支 1.dev merge test,取消 2.v1...
git 取消檔案跟蹤 git 取消原有檔案索引
本地所有檔案 git rm cached readme1.txt 刪除readme1.txt的跟蹤,並保留在本地。git rm f readme1.txt 刪除readme1.txt的跟蹤,並且刪除本地檔案。資料夾 如果是對所有檔案都取消跟蹤的話,就是 git rm r cached 不刪除本地檔案...
Git簡明教程
git是拿來控制版本的,版本控制即vcs version control system 版本控制最初是linux之父拿來管理複雜的linux核心版本的 本地版本控制 容易與備份混淆 分布式版本控制 每個使用者都有乙個專案的完整拷貝,可以通過fetch pull與伺服器同步,便於協同工作 modifi...