Git 使用中的一些命令
2017-11-21 17:39
531 查看
前言
这篇文章主要是介绍我在使用Git中的有一些忘记了,但是很重要的命令。20171127更新
分支
查看各个分支所指的当前对象git log --oneline --decorate
git log --oneline --decorate --graph --all //输出你的提交历史,各个分支的指向,以及项目分支分叉的情况
git merge [branchname] 把 branchname 合并到当前分支
遇到冲突时分支的合并
任何因包含合并冲突而有待解决的文件,都会以未合并状态标识出来。 Git 会在有冲突的文件中加入标准的冲突解决标记,这样你可以打开这些包含冲突的文件然后手动解决冲突。 出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:
<<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> iss53:index.html
这表示 HEAD 所指示的版本(也就是你的 master 分支所在的位置,因为你在运行 merge 命令的时候已经检出到了这个分支)在这个区段的上半部分( ======= 的上半部分),而 所要合并分支所指示的版本在 ======= 的下半部分。 为了解决冲突,你必须选择使用由 ======= 分割的两部分中的一个,或者你也可以自行合并这些内容。 例如,你可以通过把这段内容换成下面的样子来解决冲突:
查看每一个分支的最后一次提交
git branch -v git branch --merged / --no-merged 查看已经合并或者未合并的分支 git branch -d / -D(强制删除)
Origin 并无特殊含义
远程仓库名字 origin 与分支名字 master 一样,在 Git 中并没有任何特别的含义一样。 同时 master 是当你运行 git init 时默认的起始分支名字,原因仅仅是它的广泛使用, origin 是当你运行 git clone 时默认的远程仓库名字。 如果你运行 git clone -o booyah ,那么你默认的远程分支名字将会是 booyah/master 。2017 11 23 更新
查看文件提交历史
git log git log -p //显示每次提交的内容差异 git log --stat //显示每次提交的简略的统计信息 git log --pretty=format:"%h - %an, %ar : %s"
限制输出长度
git log --sine=2.weeks git log -<n> 显示 前 n 条提交 git log --author 指定作者的提交 git log -SFunctionName 可以列出那些添加或移除了某些字符串的提交
撤销相关操作
撤销刚刚的一个提交git commit --amend //由于commit 信息写错,好像经常用
取消暂存文件
当你使用 git add * 时,发现添加了不应该暂存的文件,可以用下面的来取消暂存git reset HEAD <file> git checkout -- <file> //取消对一个未加入暂存区文件的修改
远程仓库
添加一个远程仓库 git remote add <shortname> <url> git remote add pb https://github.com/paulboone/ticgit 从远程仓库抓取与拉取 git fetch [remote-name] //git fetch origin git push [remote-name] [branch-name] 查看远程仓库 git remote show [remote-name] 远程仓库的移除与重命名 git remote rename <originName> <afterName> git remote rm <remote-name>
标签
git tag 列出标签
Git 使用两种主要类型的标签: 轻量标签(lightweight) 与 附注标签(annotated)。
一个轻量标签很像一个不会改变的分支-它只是一个特定提交的引用。
附注标签是存储在Git数据库中的一个完整对象。它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用GNU Privacy Guard (GPG) 签名与验证。
附注标签
git tag -a v1.4 -m 'my version 1.4' git show 可以看到标签信息对应的提交信息
轻量标签
git tag v1.4-lw
给以前的提交打标签
git tag -a v1.2 9fsdfdasfa 某个提交的校验和的值
推送标签
git push origin v1.2 推送指定标签 git push origin --tags 一次性推送把所有不在远程仓库服务器上的标签全部推送过去 在特定标签上创建一个新分支 git checkout -b [branchname] [tagname] git checkout -b version2 v3.3.0
如何跳转到指定的 commit
问题描述: 比如我觉得当前分支可能不适合线上的,那么我需要来一个更加安全的分支?实现:
git checkout -b new-branch commitId
对 指定的
CommitId创建新分支。
克隆远程仓库的时候自定义本地仓库名字
git clone http://github.com/xx myName
使用 git status -s 可以看见状态的简写版本,如下所示
查看已暂存的文件差异比较
以前一直不知道,当暂存之后使用 git diff 就无效了,今天发现竟然还有这个(在未 commit 的状态下!)
git diff --cached git diff --staged
移除文件
首先先使用rm filename然后再使用
git rm filename进行记录。
另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。 为达到这一目的,使用 --cached 选项
git rm --cached deleteName
相关文章推荐
- Git团队协作使用规范 以及一些常用命令详解
- 你所需要知道的一些git 的使用命令:克隆
- 你所需要知道的一些git 的使用命令:历史
- 使用git和maven过程一些命令
- 关于git的一些基本使用命令
- git的使用和一些命令
- 你所需要知道的一些git 的使用命令:历史
- 使用git命令操作github时的一些注意事项
- Git 使用的一些命令以及Git commit 注释格式
- 我在使用Git开发时的一些命令分享
- 关于git的一些使用方法和基本命令
- 你所需要知道的一些git 的使用命令:基本技巧
- 最简洁高效的Git 命令上传代码【以及Git的一些经常使用的小命令】
- 第一次使用git的一些基本命令
- Git使用基础篇(一些常用命令和原理)
- Git的使用(一些常用命令)
- 你所需要知道的一些git 的使用命令:历史
- Git的一些使用方法和命令
- Git 使用的一些命令以及Git commit 注释格式
- GitHub使用流程- Git Shell 的一些命令总结(二) 创建代码库并学会更新