查看状态:
- 状态:git status。
- 日志:git log -n。git log --author=""。git log --graph --oneline
- 分支:git branch(本地分支)、git branch -r(远程分支)、git branch -a(所有分支)
- 设置本地分支对应远端:git branch --set-upstream-to=origin/<branch> 本地分支。 显示上游分支:git branch -vv。删除分支:git branch -D 本地分支。
- 查看不同:git diff、git diff --cached(git diff --full-index > fourjava.diff)
分支管理:(远端、远端分支、本地分支)
- 初次下拉代码:git clone 远程地址。(SSH)
- 远程分支:git remote -v(查看)、git remote add 远端起个名 远程地址。
- 分支切换:git checkout 本地分支。创建并切换:git checkout -b 本地分支。
代码管理:(git 分为工作区、缓存区(git add后)、存储区(git commit后))
- 提交修改进入上一笔commit:git commit --amend。
- 代码回退:git reset --hard(强制回退,啥都没了),git reset --soft(保留工作区、缓存区,差异放入缓存区),git reset(默认mixed,所有差异放入工作区)
- 代码更新及拉取:git pull 。git pull 远端 远端分支。git pull = git fetch + git merge。git pull --rebase(保存本地的修改到最前,,,强推)
- git的cherry-pick:git fetch 远端 远端分支 && git cherry-pick FETCH_HEAD(因为cherry-pick仅作用本地)
- 代码上推:git push 远端 HEAD:远端分支(HEAD代表本地工作分支)(git push <远程主机名> <本地分支名>:<远程分支名>)
- 本地多笔commit处理:git rebase -i commitId(HEAD到commitId)(drop、squash)
- 工作区保存:git stash、git stash pop、git stash list、git stash clear。
- untrack区:清理untrack区,git clean -nxfd 文件(f:文件,d:目录,x:所有包括忽略,n:删前查看), 将文件放入untrack区git rm --cached 文件。
- git submodule update --init --recursive