版本控制工具Git
Git是重要的版本控制工具,这里列一些平常比较少用的Git语法, 作为备忘录。
1. Commit之后重新修改Commit Message的内容
$ git commit --amend -m "the new message"
2. 丢弃还未commit的本地修改
$ git checkout -f
3. git查看分支图表
$ git log --graph
4. 合并分支git rebase与git merge
$ git rebase dev //将dev分支合并到当前分支,并且删除dev分支,确保只有一条分支流
$ git merge --no-ff dev //将dev分支合并到当前分支(不使用fast-forward方式), 将多分支在流图里都展现
$ git merge dev //将dev分支合并到当前分支(使用fast-forward方式), 如果更新了新分支后,原分支没有改动,则修改会合入原分支, 同rebase效果一样。
这里可以绘制图表比较三者关系,参考下面的文档,写的很清楚。
5. git删除本地和远程分支
远程分支删除:
$ git push origin --delete <branchName>
本地分支删除:
$ git branch -d <branchName>
6. git垃圾回收机制
$ git gc
在大的仓库中, git靠压缩历史信息来节约磁盘和内存空间,压缩操作并不是自动进行的, 你需要手动执行 git gc。压缩操作比较耗时, 你运行git gc命令最好是在你没有其它工作的时候。
7. git多行注释,打出"后即可在bash总换行
$ git commit -a -m "
1. update;
2. update;
3. update;"
8. git标签
$ git tag v1.0.1 // 打标签
$ git tag // 显示所有标签
$ git checkout tag // 切换到某个标签
$ git tag -d v1.0.1 // 删除本地tag
$ git push origin :v1.0.1 // 删除远程tag
8. .gitignore 失效
由于gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 要解决这个问题,需要先把本地缓存删除(改变成未track状态),然后再提交。
$ git rm -r --cached .
$ git add .
$ git commit -m 'commit log info'