文档章节

在工作中经常使用的git命令笔记

小致dad
 小致dad
发布于 2016/08/22 11:46
字数 1236
阅读 275
收藏 1

基础

初始化版本库

git init   

将修改添加到暂存区 

git add <file>   

将暂存区提交到版本库分支 

git commit -m "message"  

跳过暂存区直接提交工作区的修改

git commit -a -m '修改内容说明'   

查看工作区的状态 

git status   

查看工作区修改内容,即工作区与暂存区的区别

git diff <file>   

恢复到指定id的版本

git reset --hard <commitid>   

查看提交历史

git log   

查看格式化后的提交历史

git log --pretty=oneline    

查看未来的历史命令

git reflog   

查看工作区和版本库里面最新版本的区别

git diff HEAD -- readme.txt   

用版本库里<file>的版本替换工作区<file>的版本

git checkout -- <file>   

一种是<file>自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是<file>已经添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态。

可以把暂存区的修改撤销掉,不修改工作区

git reset HEAD <file>   
从版本库中删除文件

git rm <file>   

远程仓库

创建SSH Key

ssh-keygen -t rsa -C "youremail@example.com"

与远程仓库建立关联

git remote add origin git@github.com/liuyuantao1990/git-test.git

把本地库的所有内容推送到远程库

git push -u origin master
第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

以HTTPS协议形式从远程库克隆内容的到本地库

git clone https://github.com/liuyuantao1990/git-test.git  

以SSH协议形式从远程库克隆内容的到本地库

git clone git@github.com:liuyuantao1990/git-test.git  

从远程仓库抓取数据

git fetch <remote-name>  

查看远程仓库信息

git remote show <remote-name>  

远程仓库重命名

git remote rename <old-name> <new-name>  

分支管理

master分支是主分支,因此要时刻与远程同步; 

dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步; 

bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug; 

feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

创建并切换<name>分支

git checkout -b <name>   

查看分支

git branch   

创建<name>分支

git branch <name>   

切换到<name>分支

git checkout <name>   

合并指定分支到当前分支

git merge <name>   

删除<name>分支

git branch -d <name>   

查看分支的合并情况

git log --graph --pretty=oneline --abbrev-commit   

查看分支合并图

git log --graph   

采用普通模式合并制定分支到当前分支

git merge --no-ff -m "普通模式合并分支" <name>   

本地分支管理

保存工作区的内容,以后恢复工作区后可以继续工作

git stash   

恢复保存的工作区,但是恢复后,stash内容并不删除

git stash apply   

删除保存的工作区的内容

git stash drop   

恢复保存的工作区,同时删除stash内容

git stash pop  

强行删除分支

git branch -D <name>   

远程分支管理

查看远程库的信息

git remote   

查看远程库的详细信息

git remote -v   

将master分支推送到远程库对应的远程分支

git push origin master   

从远程抓取分支

git pull   

建立本地<branch-name>分支和远程<branch-name>分支的关联

git branch --set-upstream <branch-name> origin/<branch-name>  

标签操作

新建标签

git tag v1.0   

根据提交的id创建带说明的标签

git tag -a v0.1 -m "version 0.1 released" commit id   

查看所有标签

git tag   

查看<tagname>标签信息

git show <tagname>   

推送一个本地标签到远程

git push origin <tagname>   

推送全部未推送过的本地标签到远程

git push origin --tags   

删除标签

git tag -d v0.1   

删除远程标签

git push origin :refs/tags/v0.1   

文件恢复

从暂存区恢复文件到工作区

当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。

从版本库恢复文件到工作区和暂存区

当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区以及工作区中的文件。 

从版本库恢复提交到暂存区

git reset --soft <commitid>

从版本库恢复提交到暂存区和工作区,等同于git checkout HEAD .

git reset --hard <commitid>

 

 

 

 

 

 

© 著作权归作者所有

小致dad

小致dad

粉丝 165
博文 543
码字总数 584211
作品 0
济南
技术主管
私信 提问
Git、Sed 工具使用简易参考文档

查看文档:http://opus.konghy.cn/ Git 已是我日常工作中经常使用的工具。即使经常使用,但有些不常用的命令还是会忘,而恰恰有时候又需要去有这些命令。如果在互联网环境下,则可以方便的查...

Konghy
2016/01/14
61
0
Git学习笔记一--创建版本库、添加文件、提交文件等

其实,很多人都不care谁写了Git,只在乎它是免费而且好用的!So do I! 下面开始我们的学习:   1.Git安装(略)。   2.创建版本库   首先,选择一个合适的地方(我选择了D盘,我的电脑...

TreasureWe
2016/10/13
17
0
小蚂蚁学习git(3)——Git创建和合并分支、解决冲突、修复bug

接上篇(http://my.oschina.net/woshixiaomayi/blog/521519)继续。 六、创建与合并分支。 在版本回退中,每次提交,Git都把他们串成一条时间线,这条时间线就是一个分支。在Git中,这个分支...

嗜学如命的小蚂蚁
2015/10/25
180
2
git文章列表

关于gitlab默认clone协议 Git实现从本地添加项目到远程仓库 翻翻git之---一个简单的标签控件 LabelView (随手发了两张小宝宝的玩耍照) Git 项目推荐 | Java 版微信普通号机器人 翻翻git之---...

d_watson
2016/04/20
26
0
git使用笔记1:结合Github远程仓库管理项目

git是一个十分好用的版本控制工具,我们经常在本地使用git进行项目开发,Git 并不像 SVN 那样有个中心服务器,如果想要通过 Git 分享你的代码或者与其他开发人员合作,就需要将数据放到一台其...

xinyuexy
2018/10/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 8 中新增 lambda 表达式的一些基本应用

import java.util.Arrays;import java.util.List;import java.util.function.Function;import java.util.stream.Collectors;public class TestLambda { public static void......

这是一只小小鸟
11分钟前
1
0
Java向word中插入Excel文件对象

前言: 在word文件中,虽然也有表格。但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中。 本地的...

qianxi
13分钟前
2
0
海量数据下的注册中心 - SOFARegistry 架构介绍

SOFAStack Scalable Open Financial Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFARegi...

SOFAStack
16分钟前
9
0
python操作excel表格

python 对excel的操作 提示:如果需要写多个表,需要把多个表写完在保存,否则会出现表格覆盖问题 此程序 采取一边请求,一边存取,做个异常处理,即可保存已存在的数据 """# sheet的名称,...

鹏灬
19分钟前
1
0
好程序员web前端分享如何理解JS的单线程

好程序员web前端分享如何理解JS单线程,JS本质是单线程的。也就是说,它并不能像JAVA语言那样,两个线程并发执行。 但我们平时看到的JS,分明是可以同时运作很多任务的,这又是怎么回事呢? ...

好程序员IT
22分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部