赞
踩
git help -g The common Git guides are: attributes Defining attributes per path cli Git command-line interface and conventions core-tutorial A Git core tutorial for developers cvs-migration Git for CVS users diffcore Tweaking diff output everyday A useful minimum set of commands for Everyday Git glossary A Git Glossary hooks Hooks used by Git ignore Specifies intentionally untracked files to ignore modules Defining submodule properties namespaces Git namespaces repository-layout Git Repository Layout revisions Specifying revisions and ranges for Git tutorial A tutorial introduction to Git tutorial-2 A tutorial introduction to Git: part two workflows An overview of recommended workflows with Git 'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept.
抛弃本地所有的修改,回到远程仓库的状态。
git fetch --all && git reset --hard origin/master
也就是把所有的改动都重新放回工作区,并清空所有的 commit,这样就可以重新提交第一个 commit 了
git update-ref -d HEAD
展示工作区的冲突文件列表
git diff --name-only --diff-filter=U
输出工作区和暂存区的 different (不同)。
git diff
还可以展示本地仓库中任意两个 commit 之间的文件变动:
git diff <commit-id> <commit-id>
输出暂存区和本地最近的版本 (commit) 的 different (不同)。
git diff --cached
输出工作区、暂存区 和本地最近的版本 (commit) 的 different (不同)。
git diff HEAD
git checkout -
git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d
git fetch -p
git branch -vv
git branch -m <new-branch-name>
和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit
git reset <commit-id> #默认就是-mixed参数。
git reset --mixed HEAD^ #回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。
git reset --soft HEAD~3 #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接commit即可
git reset --hard <commit-id> #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容
如果暂存区有改动,同时也会将暂存区的改动提交到上一个 commit
git commit --amend
git checkout --orphan new_branch
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
git log --pretty='%aN' | sort -u | wc -l
git log --oneline | wc -l
git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/'
git blame <file-name>
git whatchanged --since='2 weeks ago'
git checkout <branch-name> && git cherry-pick <commit-id>
git submodule add <url> <path>
git clone --recursive <url>
git submodule update
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。