git学习笔记
2017-08-21 16:40
176 查看
Git 基本操作
1. git clone <url or ssh> 从远端库克隆至本地 2. git pull –u origin 拉取在本地 3. git push –u origin 推至远端库 4. git init [dir] 初始化一个库 5. git add <-A or path> 添加文件 6. git rm <file> 删除文件 7. git commit –m '…' 提交并说明
Git 标签管理
命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id; git tag -a <tagname> -m "blablabla..."可以指定标签信息; git tag -s <tagname> -m "blablabla..."可以用PGP签名标签; 命令git tag可以查看所有标签。 命令git push origin <tagname>可以推送一个本地标签; 命令git push origin --tags可以推送全部未推送过的本地标签; 命令git tag -d <tagname>可以删除一个本地标签; 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
Git 版本管理
git reset <commit_id or HEAD^>回滚到指定版本中 git log 查看操作的日志,从日志中可以看到commid_id git log --pretty=oneline 这样看起来舒服点 git remote add origin git@github.com:PencilMR/mengran_test
Git库的建立
git init --bare gitrepo.git ##建立一个可以远程push的库
配置用户信息
git config --global user.name "name" git config --global user.email mail@example.com git config --list ##查看当前的配置信息
如果用了–global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字,只要去掉–global 选项重新配置即可,新的设定保存在当前项目的.git/config文件里。
修改git的默认编辑器
git config --global core.editor vim ##默认为vim git config --global merge.tool vimdiff ##修改默认差异分析工具
查看当前的状态
git status
忽略库中的一些无用文件
$ cat .gitignore #在当前目录里建立此文件,就会生效,忽略的规则写在里面 *.[oa] #忽略所有以 .o 或 .a 结尾的文件 *~ #忽略所有以波浪符(~)结尾的文件
.gitignore 的格式规范如下:
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
\# 此为注释 – 将被 Git 忽略 \*.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目录下的所有文件 doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
文件差异比较
git diff #当前文件和暂存区域快照之间的差异 git diff --cached #已经暂存起来的文件和上次提交时的快照之间的差异 git diff --staged #同上 git diff ab34f 12fdca #比较两个记录的差异
git的删除操作
git rm <file> #删除文件(类似于git add <file>) git rm --cached <file> #只从git库中删除
文件的移动和重命名
git mv file_from file_to
查看提交的历史
git log #查看所有的提交历史 git log --stat ##查看非详细改动 git log -p -2 #-p查看详细提交,-2查看最近两次提交 git log --pretty=oneline #单行显示日志 git log --since=2.weeks #两周内的提交
–pretty=format:”…” #可以定制输出日志
git log –pretty=format:”%h - %an, %ar : %s”
%H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串 %T 树对象(tree)的完整哈希字串 %t 树对象的简短哈希字串 %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串 %an 作者(author)的名字 %ae 作者的电子邮件地址 %ad 作者修订日期(可以用 -date= 选项定制格式) %ar 作者修订日期,按多久以前的方式显示 %cn 提交者(committer)的名字 %ce 提交者的电子邮件地址 %cd 提交日期 %cr 提交日期,按多久以前的方式显示 %s 提交说明
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 commit --amend eg: $ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend
上面只产生了一次提交。
git的远程操作
git clone <url> #克隆远程仓库至本地 git remote -v #查看所有的远程仓库 git remote add [shortname] [url] #添加一个远程仓库 git fetch origin #获取远程仓库origin有,而本地没有的内容 git push [remote-name] [branch-name] #将本地推送至远程服务器上。 git remote show [remote-name] #查看远程仓库的详细信息 git remote rename pb paul #远程仓库重命名
git的分支操作
git branch #查看所有的分支 git branch -v #查看各分支最后一个commit信息 git branch <branch name> #创建一个新的分支 git checkout <branch name> #切换到这个分支 git checkouut -b <branch name> #创建并切换到这个分支 git merge <branch name> #将当前分支与目标分支合并 git branch --no-merged #查看为合成的操作 git branch -d <branch name> #删除分支
相关文章推荐
- Git学习笔记——入门
- Git学习笔记04--git checkout
- Git学习笔记
- Git学习笔记(八) Git基本操作
- Git学习笔记--Git入门
- 【Git学习笔记】使用git status时刻关注仓库状态
- Git 学习笔记-stash
- git学习笔记--创建版本库
- git学习笔记--时光穿梭机
- web开发-git使用学习-学习笔记十三
- git学习笔记(三)
- git 学习笔记
- Git的学习笔记(二)
- 我的git学习笔记
- git学习笔记-如何移除或忽略(ignore)已经提交给git管理的文件
- 学习笔记--Git安装 创建版本库 图文详解
- Git 学习笔记参考
- Git 学习笔记(1)
- git教程(关于git的学习笔记选取自廖雪峰)