GIT top ten tips
Posted on Tue 09 June 2015 in tips
1. 代码会存在于三个区域:
- 1) 工作区 working directory
- 2) 暂存区 staging area
- 3) 仓库区 repository
远程仓库可能会有多个 git remote -v
2. 代码从拉到推
- git fetch origin <branch>
- git merge <branch>
- git add xxx
- git commit -m "xxx"
- git push origin <branch>
3. 替换本地改动
- 撤销工作区修改
git checkout -- <filepath>
- 撤销暂存区修改
git reset HEAD <filepath>
- 用远程仓库中的代码覆盖本地代码
git fetch origin <branchname>
git reset --hard origin/<branchname> git reset --hard HEAD
- 删除未做版本控制的文件以清理工作区
git clean -xfd
4. 创新切换删除分支
1) 创新分支 git checkout -b <branchname>
2) 切换分支 git checkout <branchname>
3) 删除分支 git branch -d <branchname>
-
删除远程分支: git push origin --delete <branchname> or git push origin :<branchname>
-
清空本地分支: git remote prune origin
4) 查看分支 git branch -a
5) 重命名分支
git branch -m <old_branch_name> <new_branch_name> git push origin <new_branch_name>
5. 查看历史
-
显示最近5次的提交的概要历史记录 git log --graph --stat --oneline -5
-
显示最近3次的提交的详细历史记录 git log -p -3
6. 比较区别
1) 比较工作区和暂存区 git diff
2) 比较暂存区和仓库区 git diff --cached
3) 比较工作区和仓库区 git diff HEAD
7. 管理标签
-
显示标签 git tag
-
添加标签 git tag -a <tagname> -m <comments>
-
推送标签 git push --tags
-
获取远程标签 git fetch origin tag <tagname>
-
删除标签 git tag -d <tagname> git push origin :refs/tags/<tagname> git push origin --delete tag <tagname>
8. 子模块
-
添加子模块 git submodule addhttps://chromium.googlesource.com/v8/v8.git
-
初始化子模块 git submodule init
-
修改子模块 git submodule update
9. 回退
- git log -10
- git reset xxx
- git push origin <branchname> --force
10. 冲突解决
git stash
git stash pop