一、工作流程
先用一張圖,總體上描述主要git命令的工作流程
git.png
- workspace:本地的工作目錄褐筛。(記作A)
- index:緩存區(qū)域,臨時(shí)保存本地改動跑筝。(記作B)
- local repository:本地倉庫死讹,指向最后一次提交HEAD。(記作C)
- remote repository:遠(yuǎn)程倉庫曲梗。(記作D)
二、命令筆記
以下所有的命令的功能說明妓忍,都采用上述的標(biāo)記的A虏两、B、C世剖、D的方式來闡述定罢。
初始化
-
git init
// 創(chuàng)建 -
git clone /path/to/repository
//檢出 -
git config --global user.email "yangsheng02@baidu.com"
// 配置email -
git config --gloabal user.name "Skywaler_Yang"
//配置用戶名
操作
-
git add <file>
// 文件添加,A → B -
git add .
// 所有文件添加旁瘫,A → B -
git commit -m "代碼提交信息"
// 文件提交祖凫, B → C -
git commit --amend
// 與上次commit合并,*B → C -
git push origin master
// 推送至master分支酬凳,C → D -
git pull
// 更新本地庫至最新改動惠况,D → A -
git fetch
// 抓取遠(yuǎn)程倉庫更新,D → C -
git log
// 查看提交記錄 -
git status
// 查看修改狀態(tài) -
git diff
// 查看詳細(xì)修改內(nèi)容 -
git show
// 顯示某次提交的內(nèi)容
撤銷
-
git reset <file>
// 某個(gè)文件索引會回滾到最后一次提交宁仔,C → B -
git reset
// 索引會回滾到最后一次提交稠屠,C → B -
git reset --hard
// 索引會回滾到最后一次提交,C → B → A -
git checkout
// 從index復(fù)制到workspace翎苫,B → A -
git reset --files
// 文件從index復(fù)制到workspace权埠,B → A -
git reset HEAD --files
// 文件從local repository復(fù)制到workspace,C → A
分支相關(guān)
-
git checkout -b branch_name
// 創(chuàng)建名叫"branch_name"的分支煎谍,并切換過去 -
git checkout master
// 切換回主分支 -
git branch -d branch_name
// 刪除名叫"branch_name"的分支 -
git push origin branch_name
// 推送分支到遠(yuǎn)端倉庫 -
git merge branch_name
// 合并分支branch_name到當(dāng)前分支 -
git rebase
// 衍合攘蔽,D → A
沖突處理
-
git diff
// 對比workspace與index -
git diff HEAD
// 對比workspace與最后一次commit -
git diff <soucrce_branch> <target_branch>
// 對比差異 -
git add <filename>
// 修改完沖突,需要add以標(biāo)記合并成功
其他
-
gitk
// 打開圖形化git -
git config color.ui true
// 彩色的git輸出 -
git config format.pretty oneline
// 顯示歷史記錄時(shí)呐粘,每次提交的信息只顯示一行 -
git add -i
// 交互式添加文件到暫存區(qū)