文档章节

Git命令大全

大道至精
 大道至精
发布于 2015/10/15 15:52
字数 1530
阅读 274
收藏 14
点赞 0
评论 0

1.$ git config --global user.name "Your Name"
  $ git config --global user.email "email@example.com"

2.初始化一个Git仓库,使用git init命令。

3.添加文件到Git仓库,分两步:
    第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;
    第二步,使用命令git commit,完成。

4.查看所有文件ls -ah
  查看某一个文件的历史提交信息,git blame [file_name]

5.要随时掌握工作区的状态,使用git status命令。

6.如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

7.HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id(7位)或git reset --hard HEAD^。
 HEAD^上一个版本
 HEAD^^上上个版本
 HEAD~100上100个版本

8.穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

9.要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

10.直接丢弃工作区的修改时,用命令git checkout -- file,此时返回的是上一次保存暂存区的版本,如果没有保存暂存区,那么返回上一次提交的版本

11.丢弃暂存区的修改git reset HEAD file,和回退到最新版本一个意思,工作区的内容不会变动

12.命令git rm用于删除一个文件。同样只是对暂存区的操作,需要git commit

13.$ ssh-keygen -t rsa -C "youremail@example.com"
  这个命令用来创建与github连接用的非对称密钥对

14.要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
删除一个关联远程库,使用命令git remote remove origin

15.git push -u origin master第一次推送master分支的所有内容

16.每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
压缩本地的多个commit,git rebase -i HEAD~[number_of_commits],这一过程本质上重写了你的commit历史。


17.要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone git@github.com:wjwjtftf/gitskills.git命令克隆。
  Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

18.Git鼓励大量使用分支:
  查看分支:git branch
  创建分支:git branch <name>
  删除分支:git branch -d <name>

  切换分支:git checkout <name>
  创建+切换分支:git checkout -b <name>
  合并某分支到当前分支:git merge <name>
 
19.用git log --graph --pretty=oneline --abbrev-commit命令可以看到分支合并图

20.合并分支时,git merge --no-ff -m "merge with no-ff" dev。加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
另一个本地分支的commit修改应用到当前分支,git check-pick <commit id>

21.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
  stash(储藏)功能:git stash list 查看所有的工作现场
  恢复工作现场:一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了

22.开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

23.查看远程库信息,使用git remote -v;
  本地新建的分支如果不推送到远程,对其他人就是不可见的;
  从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
  在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
  建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
  从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
  如果远程库和本地库的分支名称不一致,$ git push remote 本地分支名:远程分支名

24.命令git tag <name> <commit-id>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
  命令git tag可以查看所有标签。
  git show <tagname>可以查看标签详情

25.命令git push origin <tagname>可以推送一个本地标签;
  命令git push origin --tags可以推送全部未推送过的本地标签;
  命令git tag -d <tagname>可以删除一个本地标签;
  命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

26.忽略某些文件时,需要编写.gitignore;
  .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
  https://github.com/github/gitignore上可以查找现现成的

27.git log -1查看最近一次日志
  --global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用
    全局配置在当前用户主目录下.gitconfig文件
    仓库的配置在.git/config文件

28.配置别名
  默认st标示status,co表示checkout
  git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
 
29.搭建git远程仓库
  git init --bare sample.gitGit就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾.

30.检查丢失的提交
git fsck --lost-found
git show <commit_id>,查看提交之后的改变或者运行git merge <commit_id>来恢复到之前的提交

© 著作权归作者所有

共有 人打赏支持
大道至精
粉丝 49
博文 52
码字总数 58567
作品 0
黄浦
程序员
GIT 常用命令

1:查看本地分支。带号的是当前所在的分支。 git branch 2:查看所有分支(包含本地和远程的分支)带号的是当前所在的分支。 git branch -a 3:修改分支名称(重命名)使用时候不要加“<>” ...

郏高阳 ⋅ 2015/07/03 ⋅ 0

cheat命令,演示命令的命令

cheat命令是干嘛的呢? cheat命令简单来说,就是告诉你一个命令如何使用。它没有提供其他额外多余的信息,只通过使用实例告诉你一个命令如何使用。 比如说,你想要知道解压命令tar如何使用,...

好铁 ⋅ 2014/09/08 ⋅ 0

git指令大全(建议收藏)

Git版本管理是一个分布式的仓库管理工具,其功能相当的强大,因此我总结了一些学习的命令,忘记的时候可以回来看看。 1.安装和初步配置 sudo apt install git git-core //安装 (其实不用apt...

hubbybob1专栏 ⋅ 2017/12/14 ⋅ 0

常用Git命令大全思维导图

开发中代码管理少不了使用Git,对于初学者来说Git命令的学习是一个难过的坎,为了帮助大家记忆并快速掌握Git的基本使用,我把常用的Git命令整理成思维导图,分享给大家。 高清大图在线预览 ...

mynameishuangshuai ⋅ 2016/06/13 ⋅ 0

git命令大全(非常齐全)

$ git init // 初始化一个Git仓库 $ git status // 查看仓库的状态 $ git add . // 将所有修改添加到暂存区 $ git add * // Ant风格添加修改 $ git add *Controller // 将以Controller结尾的...

sinat_39430615 ⋅ 2017/11/23 ⋅ 0

【收藏】学习资源汇总(不断更新...)

0. 安全 1. 开源项目 2. 其他

u013553529 ⋅ 2017/02/08 ⋅ 0

Mac下配置git环境和客户端SourceTree+Git常用命令大全(Mac 10.12)

前言: 如果不想折腾,直接下载GitHub桌面端,高度集成git,不需要学习git的任何命令。 https://desktop.github.com/ 一、配置git环境 1、上官网https://git-scm.com/download/mac下载 2、安...

easonjim ⋅ 2017/01/14 ⋅ 0

Git简明教程

【git教程】 http://www.liaoxuefeng.com/ (廖雪峰博客) http://rogerdudler.github.io/git-guide/index.zh.html (Git简明教程) 【常用命令】 PS:在MacOS系统环境下的git命令。 工作流 ...

shahdza ⋅ 2015/03/01 ⋅ 0

解决git本地多ssh key的问题

最近手上一个项目需要使用到一台服务器作为专用的部署服务器,在实施过程中遇到了一些问题,具体如下: 1. 服务器的ssh默认端口和项目git仓库的ssh端口不一致2. 部署需要使用项目提供的ssh k...

aaao ⋅ 2016/03/21 ⋅ 0

Linux 命令大全

其他命令 Linux bc 命令

顶风走千里 ⋅ 2017/12/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JDK1.6和JDK1.7中,Collections.sort的区别,

背景 最近,项目正在集成测试阶段,项目在服务器上运行了一段时间,点击表格的列进行排序的时候,有的列排序正常,有的列在排序的时候,在后台会抛出如下异常,查询到不到数据,而且在另外一...

tsmyk0715 ⋅ 18分钟前 ⋅ 0

spring RESTful

spring RESTful官方文档:http://spring.io/guides/gs/rest-service/ 1. 可以这么去理解RESTful:其实就是web对外提供的一种基于URL、URI的资源供给服务。不是一个原理性知识点。是一个方法论...

BobwithB ⋅ 20分钟前 ⋅ 0

C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名...

柳猫 ⋅ 22分钟前 ⋅ 0

@Conditional派生注解

@Conditional派生注解(Spring注解版原生的@Conditional作用) 作用:必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效; @Conditional扩展注解 作用(判...

小致dad ⋅ 23分钟前 ⋅ 0

适配器模式

适配器模式 对象适配器 通过私有属性来实现的类适配器 通过继承来实现的接口适配器 通过继承一个默认实现的类实现的

Cobbage ⋅ 26分钟前 ⋅ 0

Java 限流策略

概要 在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速...

轨迹_ ⋅ 30分钟前 ⋅ 0

GridView和子View之间的间隙

默认的情况下GridView和子View之间会有一个间隙,原因是GridView为了在子View被选中时在子View周围显示一个框。去掉的办法如下: android:listSelector="#0000" 或 setSelector(new ColorDra...

国仔饼 ⋅ 34分钟前 ⋅ 0

idea插件开发

1 刷新页面要使用多线程 2 调试要使用restart bug 不要去关闭调试的idea 否则再次启动会卡住

林伟琨 ⋅ 34分钟前 ⋅ 0

Java 内存模型

物理机并发处理方案 绝大多数计算任务,并不是单纯依赖 cpu 的计算完成,不可避免需要与内存交互,获取数据。内存要拿到数据,需要和硬盘发生 I/O 操作。计算机存储设备与 cpu 之间的处理速度...

长安一梦 ⋅ 41分钟前 ⋅ 0

思路分析 如何通过反射 给 bean entity 对象 的List 集合属性赋值?

其实 这块 大家 去 看 springmvc 源码 肯定可以找到实现办法。 因为 spirngmvc 的方法 是可以 为 对象 参数里面的 list 属性赋值的。 我也没有看 具体的 mvc 源码实现,我这里只是 写一个 简...

之渊 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部