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