首页 > 代码库 > git命令

git命令

获取与创建项目

git init    将一个目录初始化为 Git 仓库
git clone [url]    克隆一个 Git 仓库([url] 为你想要复制的项目


基本的快照

git add             添加文件到缓存
git add .           递归添加文件到缓存
git add *           不递归添加文件到缓存

git status           查看你的文件在工作目录与缓存的状态
git status -s       -s 参数表示以获得简短的结果输出

git diff                        显示已写入缓存与已修改但尚未写入缓存的改动的区别
git diff --cached        查看已缓存的改动
git diff HEAD               查看已缓存的与未缓存的所有改动
git diff --stat                        显示摘要而非整个 diff
git diff [version](或者你给该发布打的任何标签)    查看自发布或者某个旧历史点之后都有什么改变了
git diff [version] --stat         --stat 参数显示每个提交引入的改动的差值统计
git merge-base [branchA] [branchB]    计算两次提交的合并基础
git diff branchA...branchB    查看 branchB 与 branchA 的相对差值

git commit                          记录缓存内容的快照
git commit -m ‘注释’           -m 选项以在命令行中提供提交注释,如果漏掉了 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息
git commit -a                      自动将在提交前将已记录、修改的文件放入缓存区

git config --global user.name ‘Your Name‘      设置用户名
git config --global user.email you@somedomain.com        设置邮箱

git reset HEAD -- 文件名   取消缓存已缓存的内容 --用来告诉 Git 这时你已经不再列选项,剩下的是文件路径了
如果你想直接执行 git unstage,你可以在 Git 中配置个别名。 执行 git config --global alias.unstage "reset HEAD" 即可。 一旦执行完它,你就可以直接用 git unstage [file] 作为代替了。

git rm [file]                                        将文件从缓存区和硬盘中(工作目录)删除
git rm --cached [file]     仅删除缓冲区的文件


分支与合并
git branch                               列出可用的分支
git branch (branchname)       创建新分支
git branch -d (branchname)             删除分支

git checkout切换到新的分支
git checkout -b (branchname)     创建新分支,并立即切换到该分支上

git merge [想要合并的分支]           将分支合并到你的当前分支,注意处理合并冲突,处理完冲突后记得要git add [冲突文件]再git commit

git log                                显示一个分支中提交的更改记录
git log --oneline                 --oneline 选项来查看历史记录的紧凑简洁的版本
git log --graph                   --graph 选项,查看历史中什么时候出现了分支、合并
git log --decorate         --decorate选项,查看标签
git log --author=作者名     只寻找某个特定作者的提交
git log -[number]      -[number] 选项,以限制结果为最近 [number] 次的提交
git log --before={3.weeks.ago} --after={2010-04-18}(三周前且在四月十八日之后--no-merges         根据日期过滤提交记录,--no-merges 选项表示以隐藏合并提交
git log --grep=提交注释中的某个特定短语        根据提交注释过滤提交记录
git log --grep=""  --author="" --all-match    --all-match 选项表示想看的是某人写作的并且有某个特殊的注释内容的提交记录
git log --grep="" --format="%h %an %s"    --format选项表示可以看到每个提交的作者是谁
git log -S需要寻找的信息                   依据所引入的差值过滤(注意在“-S”与你要找的东东之间没有“=”)
git show [SHA]       显示某个特定的提交引入的补丁 
git log -p                              显示每个提交引入的补丁
git log --stat    显示每个提交引入的改动的差值统计

git tag  -a  [标签名or版本号]                          给历史记录中的某个重要的一点打上标签,不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。
 

分享与更新项目

git fetch [alias]          从远端仓库下载新分支与数据,git fetch [alias] + git merge [alias]/[branch] = git pull [alias]   推荐用这个
git pull [alias]            从远端仓库提取数据并尝试合并到当前分支

git push [alias] [branch]             推送[branch] 分支推送成为 [alias] 远端上的 [branch] 分支

git remote                                   罗列远端仓库别名
git remote add [alias] [url]          [url][alias] 的别名添加为本地的远端仓库
git remote rm [alias]   删除现存的某个别名


来自为知笔记(Wiz)


git命令