设为首页 收藏本站
查看: 1020|回复: 0

[经验分享] Git命令小记

[复制链接]

尚未签到

发表于 2018-1-14 18:22:07 | 显示全部楼层 |阅读模式
  由于自己平常git用的不多不熟练,最近写个小东西并把代码托管到github,才发现之前看的《Pro Git》和《看日记学git》完全打水漂。重翻《Pro Git》,把一些重要的常见的命令记下来,备忘,具体的请man。
  符号约定:
[]:可选  <>:必选

Git 配置
  git config [--global] user.name <name>        设置用户名
  git config [--global] user.email <email>         设置邮箱
  git config [--global] core.editor <editor>        设置编辑器
  git config [--global] github.user <user>         设置github帐号名
  git config [--global] github.token <token>        设置github的token
  --global是对当前系统用户的全局设置,在~/.gitconfig中。对系统所有用户进行配置,/etc/gitconfig。对当前项目,.git/config
Git 创建库
  git clone <url>                   ssh/http(s)/git三种协议,ssh和https可推送
  git init                        初始化Git仓库
Git 日常操作
  git add <file>                 将文件加入index file
  git rm [--cached]                删除,加--cached表示仅从index file中删除文件,即放弃跟踪
  git mv <src> <dest>             移动/更名
  git diff --cached/--staged          当前索引与上次提交(有哪些需要commit)
  git diff                      当前索引与工作目录(有哪些需要add)
  git diff HEAD[^]               工作目录与上次提交(当前目录与上次提交有何改变)
  git commit [-a] -m <msg>          提交
  git commit --amend [-m <msg>]       修复上次提交
  git reset HEAD <file>             同--mixed,default option
  git reset --mixed HEAD            撤销 commit 和index file,只保留 working tree 的信息
  git reset --hard HEAD[^]           将 working tree 和 index file 都撤销到以前状态
  git reset --soft HEAD[^]            只撤销 commit,而保留 working tree 和 index file 的信息
  回复到某个状态。以git reset --soft HEAD为例,commit回退到
  HEAD(相当于无变化),若是HEAD^,则commit回退到HEAD^
  git gc                     用垃圾回收机制清除由于 reset 而造成的垃圾代码
  git status                  显示当前工作目录状态
  git log [-p]                   显示提交历史(many useful options to be learned)
  git branch [branch]               显示/新建分支
  git branch -d/-D               删除分支(d表示“在分支合并后删除分支”,D表示无论如何都删除分支)
  git show-branch
  git checkout <branch>            切换分支(分支未commit无法切换)
  git merge <branch>              合并分支
  git merge == git pull .
  git show <branch | commit | tag | etc>        显示对应对象的信息
  git grep <rep> [object]             (在指定对象(历史记录)中)搜索        
  git cat-file                    查看数据
  git cat-file <-t | -s | -e | -p | (type)> <object>        type can be one of: blob, tree, commit, tag
  git ls-files [--stage]              show information about files in the index and the working tree(实际是查看索引文件)
  git watchchanged <since>..<until>       显示两个commit(当然也可以是branch)的区别
  git remote [-v]                    显示远程仓库,加-v选项可显示仓库地址
  git remote add <repo_name> <url>         添加远程仓库,repo_name为shortname,指代仓库地址
  git remote rename <old_name> <new_name>    更名
  git remote rm <repo_name>            删除远程仓库
  git remote show <repo_name>          查看远程仓库信息
  git remote fetch <repo_name>           从远程仓库抓取数据(并不合并)
  git pull <repo_name> <branch_name>      拉去数据并合并到当前分支
  git push <repo_name> <branch_name>      推送指定分支到指定仓库
  git fetch <repo_name> <branch_name>[:<local_branch_name>]    拉去数据,未合并
Git 标签
  git 标签相关……
Git 相关环境变量
  GIT_DIR: 如果指定了那么git init将会在GIT_DIR指定的目录下创建版本库
  GIT_OBJECT_DIRECTORY: 用来指示对象存储目录的路径。即原来$GIT_DIR/objects下的文件会置于该变量指定的路径下
Git 常见变量
  HEAD: 表示最近一次的 commit。
  MERGE_HEAD: 如果是 merge 产生的 commit,那么它表示除 HEAD 之外的另一个父母分支。
  FETCH_HEAD: 使用 git-fetch 获得的 object 和 ref 的信息都存储在这里,这些信息是为日后 git-merge 准备的。
  HEAD^: 表示 HEAD 父母的信息
  HEAD^^: 表示 HEAD 父母的父母的信息
  HEAD~4: 表示 HEAD 上溯四代的信息
  HEAD^1: 表示 HEAD 的第一个父母的信息
  HEAD^2: 表示 HEAD 的第二个父母的信息
  COMMIT_EDITMSG: 最后一次 commit 时的提交信息。
  TO BE FINISHED!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435076-1-1.html 上篇帖子: 小胡子哥 (Barret Lee)console.log( " Hi, I'm Barret, a Web Developer, try to be Excel 下篇帖子: Git忽略规则.gitignore梳理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表