您的位置:首页 > 其它

GIT 命令梳理

2016-01-08 09:36 197 查看
2.1 获取git仓库
     git init 初始化仓库
     git add *.c 跟踪文件、放入暂存区
     git clone [url] 克隆现有仓库

2.2 记录更新状态
     git status 检查文件状态
     git status -s 紧凑格式输出状态
     创建.gitignore文件,选择忽略文件

     git diff 查看未暂存修改
     git diff --cached/--staged 查看已暂存修改

     git commit 提交暂存区
     git commit -a 跳过暂存直接提交
     git commit -m "提交的信息"

     git rm 删除文件
     git rm -cached 移出仓库但保留原文件
     git mv 移动文件

2.3 查看提交历史
     git log 查看提交历史
     git log -p 查看提交历史并显示内容差异 [-num --stat修改文件列表 --pretty]
git log 的常用选项
选项说明
-p
按补丁格式显示每个更新之间的差异。
--stat
显示每次更新的文件修改统计信息。
--shortstat
只显示 --stat 中最后的行数修改添加移除统计。
--name-only
仅在提交信息后显示已修改的文件清单。
--name-status
显示新增、修改、删除的文件清单。
--abbrev-commit
仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date
使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph
显示 ASCII 图形表示的分支合并历史。
--pretty
使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
     git log --pretty=format:"%h - %an, %ar : %s"
git log --pretty=format 常用的选项
选项说明
%H
提交对象(commit)的完整哈希字串
%h
提交对象的简短哈希字串
%T
树对象(tree)的完整哈希字串
%t
树对象的简短哈希字串
%P
父对象(parent)的完整哈希字串
%p
父对象的简短哈希字串
%an
作者(author)的名字
%ae
作者的电子邮件地址
%ad
作者修订日期(可以用 --date= 选项定制格式)
%ar
作者修订日期,按多久以前的方式显示
%cn
提交者(committer)的名字
%ce
提交者的电子邮件地址
%cd
提交日期
%cr
提交日期,按多久以前的方式显示
%s
提交说明
限制 git log 输出的选项
选项说明
-(n)
仅显示最近的 n 条提交
--since, --after
仅显示指定时间之后的提交。
--until, --before
仅显示指定时间之前的提交。
--author
仅显示指定作者相关的提交。
--committer
仅显示指定提交者相关的提交。
--grep
仅显示含指定关键字的提交
-S
仅显示添加或移除了某个关键字的提交
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \ 
 --before="2008-11-01" --no-merges -- t/ 2008 年 10 月期间,Junio Hamano 提交的但未合并的测试文件

     
2.4 撤销
     git commit --amend 在提交后有新git add操作时再次提交使用
     git reset HEAD 取消暂存
     git checkout -- 撤销已经做出的修改(已经修改的文件会丢失)

2.5 远程仓库的使用
     git remote -v 查看远程仓库与对应url
     git remote add <shortname> <url> 添加远程仓库
     git fetch [remote-name] 从远程仓库中拉取信息
     git push [remote-name] [branch-name] 推送到远程仓库
     git remote show [remote-name] 查看远程仓库详细信息
     git remote rename [remote-name] 修改远程仓库简写名
     git remote rm [remote-name] 删除远程仓库
     
2.6 打标签
     git tag 列出已有标签
     git tag -a v1.4 -m 'my version 1.4' 创建附注标签
     git show v1.4 显示附注标签
     git tag v1.4 创建轻量标签
     git tag -a v1.2 9fceb02(校验和) 补打标签
     git push origin [tagname] 共享标签[--tags推送所有标签]

2.7 git别名
     git config --global alias.ci commit git     ci代替git commit
     git config --global alias.unstage 'reset HEAD --'

3.1 分支
     git branch test 创建分支
     git branch -d test 删除分支
     git log --oneline --decorate 查看分支
     git checkout test 切换分支
     git checkout -b iss53是git branch iss53; git checkout iss53的简写
     git merge hotfix 合并分支
     git mergetool 图像化的合并冲突工具
3.2 分支管理
     git branch 查看分支列表[-v 查看分支最后一次提交 --merged/--no-merged 已合并未合并分支]
3.3  远程分支
     git ls-remote (remote) 显式地获得远程引用的完整列表
     git remote show (remote) 获得远程分支的更多信息
     git checkout -b [sf] origin/serverfix 在本地建立origin/serverfix的分支[并重命名为sf]
     git branch -vv 查看设置的所有跟踪分支
     git push origin --delete serverfix 删除origin上的serverfix远程分支
3.4 变基
     git rebase master 将当前分支变基到master
     git rebase --onto master server client 取出 client 分支,找出处于 client 分支和 server 分支的共同祖先之后的修改,然后把它们在 master 分支上重演一遍(即将基于server上修改的client变基到master上,而不管server)
     git pull --rebase 为git fetch;git rebase teamone/master
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: