配置
- 查看配置信息:
git config --list
- 直接查看某個環(huán)境變量的設(shè)定:
git config user.name
git config user.email
- 查看git版本:
git --version
- 安裝git:
sudo apt-get install git
- 配置名字:
git config --global user.name "Your Name"
- 配置郵箱:
git config --global user.email "email@example.com"
克隆现喳、提交代碼
-
git clone git@gitmobile.blued.cn:blued_mobile/git_test.git
:從遠程倉庫克隆 -
git clone <repo> <directory>
:克隆到指定的目錄 -
git status
:查看倉庫當前的狀態(tài) -
git status -s
:獲得簡短的結(jié)果輸出 -
git pull --rebase
:更新代碼漫萄,rebase
參數(shù)可以保證你即使進行了commit操作也不會額外生成一次快照 -
git diff
:尚未緩存的改動 -
git diff --cached
:查看已緩存的改動 -
git diff HEAD
:查看已緩存的與未緩存的所有改動 -
git diff --stat
:顯示摘要而非整個 diff -
git add readme.txt
:添加文件修改到暫存區(qū) -
git add *
:添加多個文件修改到暫存區(qū) -
git reset HEAD <file>
:暫存區(qū)的目錄樹會被重寫,被 master 分支指向的目錄樹所替換侥啤,但是工作區(qū)不受影響 -
git rm --cached <file>
:直接從暫存區(qū)刪除文件,工作區(qū)則不做出改變 -
git checkout .
git checkout -- <file>...
:用暫存區(qū)全部或指定的文件替換工作區(qū)的文件 -
git checkout HEAD .
git checkout HEAD <file>
:用 HEAD 指向的 master 分支中的全部或者部分文件替換暫存區(qū)和以及工作區(qū)中的文件 -
git commit -m "提交日志"
:將緩存區(qū)內(nèi)容添加到倉庫中 -
git commit -a
:如果你覺得 git add 提交緩存的流程太過繁瑣芽丹,Git 也允許你用 -a 選項跳過這一步夯尽。例如:git commit -am '修改 hello.php 文件'
-
git push origin master/develop/feature
:將代碼提交到遠程分支 -
git reset --hard HEAD~1
:恢復(fù)到之前的commit袱箱,1代表數(shù)量 -
git reset --hard commitID
:恢復(fù)到指定的commitID,這個命令比較危險式曲,會把這條commitID之后的全部覆蓋 -
git push --force
:恢復(fù)到某個commitID重新提交到遠端 - 使用sourceTree可以撤銷任何指定的提交記錄妨托,同樣需要再提交一次。
-
git reset --hard e71ea349648eab13afa015f5cce5e7d0096625b4
:回退到指定版本 -
git stash / git stash pop
:保存當前本地的修改吝羞,無需提交到緩存區(qū) -
git cherry-pick c492aa9
: 提交摸個節(jié)點到當前分支
branch
-
git branch
:查看當前分支兰伤。 -
git branch -r
:查看遠程所有的分支。 -
git branch -a
:查看本地和遠程所有的分支脆贵。 -
git branch xx
:創(chuàng)建分支 -
git branch -d xx
:刪除分支 -
git branch -D xx
:強制刪除分支 -
git checkoup xx
:切換到分支 -
git checkout -b xx
:創(chuàng)建并切換到當前分支 -
git merge b1
:合并分支b1到當前分支医清,需要b1在本地已拉取 -
vim 沖突文件
:當merge沖突時,需要手動解決沖突 -
git add 解決沖突后的文件
:解決完畢后需要再次添加 -
git cherry-pick 5b531cb8c62cdb8b5f10c406e41824a6388e3a82 6b531cb8c62cdb8b5f10c406e41824a6388e3a82
:從另外一個分支里面挑選一些commit到當前分支
提交歷史
-
git log
:回顧下提交歷史 -
git log 分支名/tag名/遠程分支名
:指定log -
git log --oneline
:查看歷史記錄的簡潔的版本 -
git log --graph
:查看歷史中什么時候出現(xiàn)了分支卖氨、合并 -
git log --reverse --oneline
:逆向顯示所有日志 -
git log --author
:查找指定用戶的提交日志会烙,例如:git log --author=Linus --oneline -5
-
--since
和--before
:指定日期负懦,例如git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges -
--no-merges
:隱藏合并提交 -
git reflog
:查看每一次命令
標簽
-
git tag -a v1.0
:創(chuàng)建一個帶注解的標簽 -
git tag -d v1.1
:刪除標簽 -
git tag -a v0.9 85fc7e7
:追加標簽 -
git tag
:查看所有標簽 -
git show v1.0
:查看此版本所修改的內(nèi)容 -
git checkout v1.0
:切換到某個tag節(jié)點。-f
強制切換 -
git push origin --tags
: 將標簽推送到origin分支 -
git push origin --delete tag <tagname>
刪除遠程tag - 可以基于某個tag拉取分支進行代碼提交
協(xié)作
- 查看可以抓取和推送的遠程地址:
git remote -v
子模塊
-
git submodule init
:初始化 -
git submodule update
:更新
示意圖
-
一個團隊,理想情況下的分支是這樣的:
上一篇:UISearchBar常用屬性
下一篇:iOS圖片濾鏡