Git的基本操作主要是創建本地庫、增加內容,提交修改 ,並把修改同步到遠程庫,常用的命令是git clone、git checkout、git commit、git push、git pull等。

一,創建本地庫
本地庫(Repository)是一個目錄,這個目錄里面的所有文件都可以被Git管理起來,Git跟蹤目錄中每個文件的修改和刪除,以便在將來某個時刻可以“還原”。
1,創建新的本地代碼庫
創建一個版本庫其實就是創建一個空目錄,並使Git管理該目錄。
# 在當前目錄新建一個Git代碼庫
$ git init
# 新建一個目錄,將其初始化為Git代碼庫
$ git init [project-name]
Git 使用 git init 命令來初始化一個版本庫,Git 的很多命令都需要在版本庫中運行,所以 git init 是使用 Git 的第一個命令。
2,復制遠程庫
如果要從遠程庫中下載代碼到本地,可以直接克隆一個遠程庫:
git clone [url]
使用 git clone 從現有 Git 倉庫中拷貝代碼到本地庫。
在執行完成 git init / clone 命令后,版本庫中會自動生成一個 .git 目錄,該目錄包含了資源的所有元數據,其他的目錄保持不變。
在本地庫創建完成之后,就可以使用git 命令來對本地庫進行修改和管理分支。
二,增加、刪除或移動文件
在git中可以增加新文件,刪除舊文件或者把文件移動到其他folder中。
1,增加新文件
git add 命令用於增加Git追蹤的內容,把內容加入到本地代碼庫的索引當中
git add file1 file2
應該建立一個清晰的概念就是,git add 只是刷新了 Git 的跟蹤信息,file1 和 file2 這兩個文件中的內容並沒有提交到 Git 的內容跟蹤范疇之內。
添加所有未跟蹤文件用
git add -A
添加所有未跟蹤文件並且提交用
git commit -a
2,文件的刪除
要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除,然后提交。可以用以下命令完成此項工作
# 刪除工作區文件,並且將這次刪除放入暫存區 git rm [file1] [file2] ...
如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f
git rm -f <file>
如果把文件從暫存區域移除,但仍然希望保留在當前工作目錄中,換句話說,僅是從跟蹤清單中刪除,使用 --cached 選項即可
# 停止追蹤指定文件,但該文件會保留在工作區 git rm --cached [file]
3,文件的移動
git mv 命令用於移動或重命名一個文件、目錄、軟連接。
# 改名文件,並且將這個改名放入暫存區 git mv [file-original] [file-renamed]
三,提交修改
提交內容到本地代碼庫使用 git commit命令,使用 -m 選項以在命令行中為該次提交添加注釋:
git add file1 file2
git commit -m 'comments'
如果你覺得 git add 提交緩存的流程太過繁瑣,Git 也允許你用 -a 選項跳過這一步,命令格式如下:
git commit -a
或者使用 -am 選項,跳過git add,並為這一次提交添加注釋:
git commit -am 'comments'
四,遠程同步
遠程同步主要分為兩部分:把修改推送到遠程庫,使用push命令;把遠程庫中的代碼同步到本地庫,使用fetch。pull命令是push命令和fetch命令功能的合並。
# 下載遠程倉庫的所有變動 $ git fetch [remote] # 取回遠程倉庫的變化,並與本地分支合並 $ git pull [remote] [branch] # 上傳本地指定分支到遠程倉庫 $ git push [remote] [branch] # 強行推送當前分支到遠程倉庫,即使有沖突 $ git push [remote] --force # 推送所有分支到遠程倉庫 $ git push [remote] --all
五,Git分支管理
使用分支意味着你可以從開發主線上分離開來,在不影響主線的同時繼續工作。
1,創建分支命令
新建一個分支,但依然停留在當前分支
git branch (branchname)
2,切換分支命令
切換到指定分支,並更新工作區
git checkout (branchname)
當你切換分支的時候,Git 會用該分支的最后提交的快照替換你的工作目錄的內容, 所以多個分支不需要多個目錄。
3,刪除分支命令
git branch -d (branchname)
4,合並分支命令
你可以使用以下命令把指定的分支合並到當前分支中去:
# 合並指定分支到當前分支
git merge [branch]
合並並不僅僅是簡單的文件添加、移除的操作,Git 也會合並修改。一旦某分支有了獨立內容,你終究會希望將它合並回到你的主分支。
step1:切換到主分支,當前分支是主分支
git checkout master
step2,把指定的分支合並到當前分支(主分支)
git merge change_branch
當把輔分支合並到 "master" 分支時,如果出現合並沖突,接下來就需要手動去修改它。
step3,提交合並
在 Git 中,我們可以用 git add 要告訴 Git 文件沖突已經解決,並使用git commit來提交分支的合並。
git add solve_conflict
git commit
六,查看Git
用戶可以查看git的狀態和提交的歷史記錄
1,查看git的狀態
git status 以查看在你上次提交之后是否有修改,使用-s參數,以獲得簡短的結果輸出,如果沒加該參數,Git會輸出詳細的內容:
git status -s
執行 git diff 來查看執行 git status 的結果的詳細信息。git diff 命令顯示已寫入緩存與已修改但尚未寫入緩存的改動的區別。
git diff 有兩個主要的應用場景。
- 尚未緩存的改動:git diff
- 查看已緩存的改動: git diff --cached
- 查看已緩存的與未緩存的所有改動:git diff HEAD
- 顯示摘要而非整個 diff:git diff --stat
2,查看提交的歷史
使用git log 命令查看提交的歷史
# 顯示當前分支的版本歷史 git log # 顯示commit歷史,以及每次commit發生變更的文件 git log --stat # 搜索提交歷史,根據關鍵詞 git log -S [keyword]
參考文檔:
