1:更新: 更新后,更新只在Workspace中,没有到暂存区。git status可以查看当前状态。
git add <file> 可以放到待提交区。
git checkout --<file> 可以放弃更改 , 本地的修改都会被覆盖
2: 对于已经提到待提交区的:
git reset HEAD <file> 可以把文件在放回workspace。
git commit -m "message" 可以提交文件
3: 对于已经commit的,
git log // 查看commit的历史记录。
git revert HEAD // 撤销最近大一个提交
4: git diff: //workSpace中的文件和暂存区文件的差异。
git diff HEAD~n // workspace中的状态和REPO中的状态进行diff.
5 综上所述, 撤销更新:更新存在3个地方: workspace, Stage, repo中,
A: 撤销WorkSpace中的更新:git checkout -- <file> //这种方式已定要谨慎,撤销后找不回来
B: 撤销stage中的更新: git reset HEAD <file> // 把暂存区的文件移动到workspace
git rest --hard HEAD // 是不可以恢复的
C:撤销repo中的更新:
git log // 查看commit的历史记录。 git revert HEAD // 撤销最近大一个提交
6 : q //退出VIM模式。
7: 查看远程版本库信息
git remote show
8: 创建分支: git branch develop
这个分支新建后,是在本地,如何推送到remote呢?
git push --set-upstream origin hhh
9: 切换分支: git checkout develop
10: 列出本地分支: git branch
列出远程分支: git branch -r
列出所有本地和远程分支: git branch -a
11: git branch branchname // 创建新分支,但是不切换过去
git checkout branchname // 切换到一个存在的分支
git checkout -b [branch] // 创建新分支,并切换到该分支(把上两步骤合并)
12: 删除分支:
首先当前分支不是要删掉的的分支,否则不可以删除
git branch -D branchtodelete
git branch -D -r origin/XXX // 删除远程分支,可以先用git branch -r 列出远程分支
13: 基于某个分支创建新分支
git branch XXX // 就是基于当前所在的分支创建新分支
git checkout -b newbranch baseBranch // 基于basebranch创建newbranch.
14: git 自动补全的功能
在运行 git add 和 git branch -D 的时候,按Tab键,发现有自动补全的功能
15:git stash:
git stash save -a "messeag" // 把workspace的内容加入到stash 栈中
git stash list // 列出stash
Dell@DESKTOP-OSTGSI3 MINGW64 /d/eclipseWorkSpace/maven-web-sample (master) $ git stash list stash@{0}: On master: message stash@{1}: WIP on master: be28beb toreset Dell@DESKTOP-OSTGSI3 MINGW64 /d/eclipseWorkSpace/maven-web-sample (master) $
git stash pop stash@{0} // 把最近的stash内容更新到workspace, 并且从栈中删除
再执行 git stash list // 列出stash
stash@{0}: WIP on master: be28beb toreset
git stash apply <stash@{id}> // 与git stash pop不同的是,这个执行完后,在stash栈中不删除
git stash drop <stash@{id}> // 把stash中的指定的drop掉
git stash pop // 不指定名字,弹出最新的
16: merge VS rebase:
待续