本篇,我们来介绍一下 Git 的历史记录的浏览查看以及分支的基本操作。
Restore a Deleted File
git log --oneline -- {filename}
git checkout {commitid} {filename}
|
Blaming
git blame -L {a,b} {filename}
|
其中,a 为起始行号,b 为终止行号。
Tagging
git tag -a {tagname} -m {message} {commitid}
git tag -d {tagname}
git tag
|
Branch
git branch {branchname}
git branch
git switch {branchname}
git switch -C {branchname}
git branch -m {oldbranchname} {newbranchname}
git branch -d {branchname}
git branch -D {branchname}
|
Compare the Branch
git diff {branchname1}..{branchname2}
git diff {branchname}
|
Stashing
当我们在某一分支有未提交的修改,我们无法切换分支。我们可以使用 stash 命令暂存修改。
git stash push -m {message}
git stash list
git stash apply {stashindex}
git stash drop {stashindex}
git stash clear
|
Merging
合并有两种方式:
- Fast-forwarding merges
- 3-way merges
一般情况,我们合并时会使用 –no-ff 参数禁用 Fast-forward 来使分支更加清晰。
为避免忘记使用该参数,我们也可以使用命令:
git config --global ff no
|
来禁用仓库的 Fast-forwarding merges。
View the Merged Branch
git branch --merged
git branch --no-merged
|
Undoing a Faulty Merge
git reset --hard {commitid}
|
reset 命令有三个可选参数:
- soft: 只会改变本地仓库,不会改变工作区和暂存区
- mixed: 改变本地仓库和暂存区,不会改变工作区,这是默认选项
- hard: 同时改变本地仓库、暂存区和工作区
查看远程仓库信息
Fetching
我们使用 fetch 命令从远端拉取最新更新:
拉取之后还需要 merge 操作,将本地文件与远端文件合并。
Pulling
pull = fetch + merge:
Pushing
git push origin {tagname}
git push origin --delete {tagname}
|
Sharing Branches
git push -u origin {branchname}
git push -d origin {branchname}
|