新功能开发流程: 开始 feature 分支 git flow feature start name git flow feature publish name git flow feature pu
新功能开发流程:
开始 feature 分支
git flow feature start name
git flow feature publish name
git flow feature pull name
git flow feature finish name
发布到测试
git flow release start 1.0.0
git flow release publish 1.0.0
git flow release track 1.0.0
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