新功能開發流程:git
開始 feature 分支
git flow feature start name測試
git flow feature publish namecode
git flow feature pull nameserver
git flow feature finish name開發
發佈到測試
git flow release start 1.0.0it
git flow release publish 1.0.0 編譯
git flow release track 1.0.0ast
git flow release finish 1.0.0版本管理
發生產
git pull origin develop原理
git push origin develop:develop
git checkout master
git pull origin master
git push origin master --tags
__________________________________________________________
文件忽略
//文件忽略 .gitignore
.gitignore會被提交到遠程,並對全部用戶有效
.gitignore只能忽略那些原來沒有被track的文件,若是某些文件已經被歸入了版本管理中,則修改.gitignore是無效的。
//文件忽略 assume-unchanged
git update-index --assume-unchanged PATH 在PATH處輸入要忽略的文件。
git update-index --no-assume-unchanged PATH 解除忽略
此方法對「已經被歸入了版本」的文件一樣有效
這種方法只對本地有效,即本地修改文件不會被提交 但遠程有更新會pull下來
這裏的PATH貌似只能是文件不能是目錄
當指定PATH爲目錄時:
如:git update-index --assume-unchanged ./
會提示:Ignoring path xxx/xxx/xxx
能夠使用通配符(*),可是若是目錄中含有子目錄則會報錯:
Unable to mark file xxx/xxx/xxx
解決辦法:
利用 git ls-files 命令 和 管道符 | 忽略當前目錄下全部文件:
git ls-files -z | xargs -0 git update-index --assume-unchanged
固然這樣也只是將已有的文件歸入忽略,對新文件沒有效果(須要再次執行該命令或結合下面的方法)
//文件忽略 .git/info/exclude
一樣只對本地當前用戶有效,可設置目錄,設置方法和 .gitignore 相同
和 .gitignore同樣只對未跟蹤的文件有效
//更新 .gitignore
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
更新 .gitignore 能夠解決 「文件已經被歸入了版本」的狀況
//提交忽略的文件
git add -f <path>
________________________________________________________________________
//查看一個文件的修改史
git log --pretty=oneline 文件名
1. git log filename
能夠看到fileName相關的commit記錄
2. git log -p filename
能夠顯示每次提交的diff
3. 只看某次提交中的某個文件變化,能夠直接加上fileName
git show c5e69804bbd9725b5dece57f8cbece4a96b9f80b filename
按q退出
________________________________________________________________________
//刪除本地分支
git branch -d branch-name
//刪除遠程分支
git push origin :branch-name
冒號前面的空格不能少,原理是把一個空分支push到server上,至關於刪除該分支。
//放棄全部本地修改 包括已經commit還沒push的
git reset --hard origin/branch
__________________________________________________________________________
git clean 刪除本地 untracked
// 刪除 untracked files git clean -f // 連 untracked 的目錄也一塊兒刪掉 git clean -fd // 連 gitignore 的untrack 文件/目錄也一塊兒刪掉 (慎用,通常這個是用來刪掉編譯出來的 .o之類的文件用的) git clean -xfd // 在用上述 git clean 前,牆裂建議加上 -n 參數來先看看會刪掉哪些文件,防止重要文件被誤刪 git clean -nxfd git clean -nf git clean -nfd