一、Git的版本控制思想
二、常见的命令集锦
1.分支模块
- 切换分支:git checkout 分支名
- 创建本地分支:git branch 本地分支名
- 创建并切换至新分支:git checkout -b 分支名
- 查看本地分支:git branch
- 查看本地和远程分支:git branch -a
- 查看本地和远程分支并显示 log 信息:git branch -va
- 查看远程分支和相应提交信息:git branch -vr
- 查看本地分支和相应提交信息:git branch -v
- 删除本地分支:git branch -d 本地分支名
- 删除远程分支:git push origin –delete 远程分支名
- 提交本地分支到远程分支:git push origin A:A 可简写成git push origin A 注意第一种方式A:A中间不能有空格,不然shell不识别会报错
合并分支(合并分支B 到 分支A):先切换到 A 分支,然后 git merge B分支名
分支重命名 git branch -m
2.提交日志
git log
- –oneline- 压缩模式,在每个提交的旁边显示经过精简的提交哈希码和提交信息,以一行显示。
- –graph- 图形模式,使用该选项会在输出的左边绘制一张基于文本格式的历史信息表示图。如果你查看的是单个分支的历史记录的话,该选项无效。
- –all- 显示所有分支的历史记录
- 查看提交的作者记录:git log –author=作者名
- git log –follow -p – file (git查看某个文件的修改记录 )
- git commit –amend (修改最近一次提交的信息)
3.标签
标签是一个很还用的特性,帮助我们标记重要的 commit,方便我们回溯。比如一段时间后需要重新拿回现在移除了但以前实现的一个功能,就可以通过 git 中的 tag进行快速定位。
git tag [tag name] [commit id] //添加 tag
git tag //查看所有 tag
git tag -l
git tag --list
git tag -l -n
git show tag_name //查看 tag 信息
git tag -a [tag name] -m [log info] [commit id] //创建带有说明的标签:-a指定标签名,-m日志信息
4.暂存
git stash
- 查看 stash 列表:git stash list
- 取回 stash:git stash apply (取回但并不会删除此stash)
- git stash apply stash@{index}
- 删掉某个 stash:git stash drop
- 删掉所有 stash:git stash clear
- 取回第一个stash:git stash pop(并删除此stash)
5.gitignore
6.其他
- 回退到某个 commit:git checkout commit 版本号 -b 新分支名
- git remote -v (查看远程仓库地址)
三、关于Git的管理权限
1.公钥和私钥的生成命令
ssh-keygen -t rsa -C "youremail@xxx.com"
2.生成的公钥和私钥路径
- 如果指定了这个文件的名称,它将会生成在当前的文件夹下面
- 如果没有指定名称,默认会生成在:user/.ssh目录下
四、常见疑难杂症
unable to index file Temp/UnityLockFile
遇到这种情况,添加.gitignore 忽略掉Temp文件夹,不然add命令会失败
git pull origin [branch_name] -X theirs/ours 拉取分支并使用谁的
查看某个文件的更改信息:git log -p [file_name]
http://www.oschina.net/translate/10-tips-git-next-level
https://segmentfault.com/a/1190000002448847CRLF警告:warning: LF will be replaced by CRLF
解决办法是进行配置:git config –global core.crlf false
五、高阶技能
git checkout - 切换到你最后所在的分支
git branch --merged 查看你的本地分支里哪些分支是已经合并进你当前所在的分支
git branch --no-merged 查看哪些分支还没有合并进当前所在的分支
git blame [file_name] 将每一行的作者、最新的变更提交和提交时间展示出来
git blame -w # 忽略移除空白这类改动
git blame -M # 忽略移动文本内容这类改动
git blame -C # 忽略移动文本内容到其它文件这类改动
git配置文件存放位置:该仓库目录下的.git 目录下的 config文件(vim .git/config)