一般的过程:
①如果还没有库先用 git clone 克隆一个库。
②使用 git checkout master切换到master分支。
③使用 git pull 同步远程master分支(即git fetch + git merge,可用git pull -rebase避免merge垃圾提交信息)。
④使用 git checkout -b myBranch 基于master分支创建一个新分支myBranch,等同于 git branch myBranch + git checkout myBranch。
⑤使用 git add 将变更添加到暂存区。
⑥使用 git status 查看状态。
⑦使用 git commit 提交变更到本地仓库。
⑧使用 git push 推送到远程库。
常用技巧:
- Git忽略文件:创建.gitignore文件并在里面配置需要忽略的文件和目录。
- 本地仓库与远程仓库同步:git fetch
- 合并多个本地提交: git rebase -i
- 修改已提交信息:git commit –amend
- 回退提交:git reset(直接删除提交,但如果与其他分支merge时可能又会引入) 或 git revert (将提交的内容删除后用一个新的提交去覆盖原来的提交,以后和其他分支merge时不会再引入)
- 合并分支:git merge
- 找出每行对应的作者:git blame somefile (加上-w忽略空格差异)
- 查看提交记录:git log --oneline --graph(每个提交一行地显示分支树图),git log -p filename(查看某个文件的变更日志,可用less工具),git log -S 'pattern'(查看符合pattern的提交),git log -L 1,8:somefile(查看某个文件的某些行的变更)
- 查看其他某个分支的某个文件内容:git show somebranch:somefile
- 保存尚未提交的变更后恢复:git stash -> git stash list -> git stash apply stash@{num}
- 交互式暂存:git add -p (选择性地add)
- git状态:git status
- 避免git pull导致merge提交信息:用git pull –rebase替换git pull,它使git先将远程分支上的变更pull到本地,然后将尚未push的提交重新以这个最新版本作为基础添加进去,这样就可以避免合并带来的丑陋信息。
- 差异比较:git diff 或 git diff -w (忽略空格差异)
- 别名:git config --global alias.别名 "命令行"