1、git工做流程

- Workspace工做區:是當前工做目錄,能夠在此目錄編輯文件
- Index緩存區:add指令,保存文件的改動
- Repository倉庫:commit指令,將屢次的文件改動最後提交
- Remote遠程倉庫:能夠將本地倉庫代碼傳到遠程倉庫上,方便多人遠程協做
2、經常使用操做
一、初始化倉庫
$ git init
二、加到緩存區
# 指定文件,提交到暫存區
$ git add <filename>
# 將工做區的變化提交到暫存區,包括文件修改和新增,可是不包括刪除的文件
$ git add .
# 將工做區的變化提交到暫存區,包括新增,刪除和修改的全部內容
$ git add -A
三、提交到版本庫
# 將修改從暫存區提交到版本庫,並添加備註message
$ git commit -m 「message」
四、查看信息
# 查看上次提交以後是否有修改
$ git status
# 查看上次提交以後是否有修改,簡短輸出結果
$ git status -s
# 查看還沒有緩存的改動
$ git diff
# 查看已緩存的改動
$ git diff -cached
# 查看已緩存的與未緩存的全部改動
$ git diff HEAD
# 顯示當前分支的版本歷史
$ git log
# 顯示commit歷史,以及每次commit發生變動的文件
$ git log --stat
# 顯示指定文件相關的每一次diff
$ git log -p [file]
五、回退操做
# 恢復暫存區的指定文件到工做區
$ git checkout [file]
# 恢復某個commit的指定文件到暫存區和工做區
$ git checkout [commit] [file]
# 恢復暫存區的全部文件到工做區
$ git checkout .
# 重置暫存區的指定文件,與上一次commit保持一致,但工做區不變
$ git reset [file]
# 重置暫存區與工做區,與上一次commit保持一致
$ git reset --hard
六、分支操做
# 列出全部本地分支
$ git branch
# 列出全部遠程分支
$ git branch -r
# 列出全部本地分支和遠程分支
$ git branch -a
# 新建一個分支,但依然停留在當前分支
$ git branch [branch-name]
# 新建一個分支,並切換到該分支
$ git checkout -b [branch]
# 切換到指定分支,並更新工做區
$ git checkout [branch-name]
# 合併指定分支到當前分支
$ git merge [branch]
# 選擇一個commit,合併進當前分支
$ git cherry-pick [commit]
# 刪除分支
$ git branch -d [branch-name]
# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
七、克隆倉庫
# repo:Git 倉庫 directory:本地目錄
$ git clone <repo>
$ git clone <repo> <directory>
八、與遠程倉庫同步
# 增長一個新的遠程倉庫,並命名
$ git remote add [origin] [url]
# 取回遠程倉庫的變化,並與本地分支合併
$ git pull [remote] [branch]
# 上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]