一.如何学习git指令

1.查看帮助:git help
2.查看指定命令:git help clone
3.搜索关键字:/chone
4.退出帮助文档:输入Q

二.常见命令

1.初始化git本地仓库:先进入目标文件夹然后输入git init
2.创建文件:touch car.h
3.查看文件状态:git status
查看最新改动:git diff 文件名
4.添加到git暂缓区:git add Car.h
5.添加多个文件到暂缓区:git add .
6.提交代码:gitcommit -m “说明”
7.第一次需要设置账户的用户名和email

git config --global user.name "xxx"
git config --global user.email xxx.me@gmail.com

红色文件:文件没有被纳入到git管理中
绿色文件:文件加入到了‘暂存区’

三.配置账号信息(一般来讲只需配置一次全局的账号即可)

配置局部信息

git config user.name "xxx"
git config user.email xxx.me@gmail.com

配置全局信息
git config --global user.name "xxx"
git config --global user.email xxx.me@gmail.com

1.如果没有配置过账号信息,那么git会有一个默的账号信息
2.如果配置的是全局信息那么
查看账户信息

cat ~/.gitconfig

修改全局信息

gedit ~/.gitconfig

四.查看日志

1.git log
2.一次显示一行

 git log --pretty=oneline

五:回退版本

如果文件已经被commit 可以通过git reset来回退版本
1.在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:

$ git reset --hard HEAD^

2.回到某个版本:

$ git reset --hard 3628164

3.检出当前分支的最高版本:

git checkout Car.h

4. 用来记录你的每一次命令,可以在这里看到程序

git reflog

5.删除文件

git rm -Car.h
git commit -m “说明”

还原

 git checkout -- Car.h

六.github

1.注册github账号
2.创建SSH key 在用户主目录下,看看有没有.ssh目录
id_rsa 私钥
id_rsa.pub 公钥
3.登陆github 打开setting,SSH key界面,点Add SSH key,填上任意Title,在Key文本框里粘贴id_rsa.pub

4.添加远程库,登陆github创建一个新的仓库,然后根据github的提示,在本地的仓库下运行命令
把本地仓库上传到github仓库

git remote add origin git@github.com:liushaocong/learngit.git

在本地仓库的内容推送到远程

git push origin master

从远程库克隆

git clone git@github.com:liushaocong/learngit.git

5.创建一个分支

git checkout -b dev

#-b表示创建并切换相当于一下两条命令

创建一个dev分支$git branch dev

切换到dev分支$git checkout dev

列出所有分支 当前分支前面加*

git branch
* dev
master

在dev分支上修改文件

切换到master分支

git checkout master

合并指定分支到当前分支

git merge dev

删除dev分支

git branch -d dev 

两个版本文件冲突,首先解决冲突再提交,合并完成

git log --graph --pretty=oneline --abbrev-commit 分支合并图

合并分支时,如果可能,Git会用Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。
如果强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
首先,仍然创建并切换dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

修改readme.txt文件,并提交一个新的commit:

$ git add readme.txt
$ git commit -m "add merge"
[dev 6224937] add merge
1 file changed, 1 insertion(+)

现在,我们切换回master:

$ git checkout master
Switched to branch 'master'

准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

$ git merge --no-ff -m "merge with no-ff" dev
Merge made by the 'recursive' strategy.
readme.txt | 1 +
1 file changed, 1 insertion(+)

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

合并后,我们用git log看看分支历史:

$ git log --graph --pretty=oneline --abbrev-commit
* 7825a50 merge with no-ff
|\
| * 6224937 add merge
|/
* 59bc1cb conflict fixed
...

可以看到,不使用Fast forward模式,merge后就像这样:

七.创建标签

首先,切换到需要打标签的分支上

然后敲命令git tag <name>就可以打一个新标签:
git tag v0.1

$ git checkout dev
Switched to branch 'dev'
$ git branch
* dev
master
$ git tag v0.1

可以敲命令git tag 查看所有的标签

忘了打标签可以找到历史提交的commit id,然后打上

&git log --pretty=oneline --abbrev-commit
3d919ae add merge
902eb16 conflict fixed
d347d7d & simple
c209efc and simple
e0f50b8 branch test
b1f57f6 smile
$ git tag v0.2 c209ef

  

用git show <tagname>查看标签信息

如果标签打错了,也可以删除:

$ git tag -d v0.1
Deleted tag 'v0.1' (was 3d919ae)

创建的标签都只存储到本地,不会自动推送到远程,如果要推送某个标签到远程,使用命令git push origin <tagname>

git push origin v0.1

或者一次性推送全部尚未推送到远程的本地标签

git push origin --tags

如果标签已经推送到远程,要删除远程标签,先从本地删除

git tag -d v0.1

然后,从远程删除。删除命令也是push,但是格式如下:

git push origin :/refs/tags/v0.1

  

Git常用的基本操作的更多相关文章

  1. git常用命令-基本操作

    git常用命令-基本操作 1)      新增文件 新增了Test_1.java git add Test_1.java git commit –m “新增了Test_1.java” git push ...

  2. git常用操作记录

    之前的多人项目大多使用了SVN作为版本控制,自己只会用eclipse连接GitHub的操作.这次项目采用了git作为版本控制系统,所以学会了很多新操作,这里权当记录,以备后用. git的一些基本操作可 ...

  3. Git 常用命令总结,掌握这些,轻松驾驭版本管理

    原创 最近公司的代码管理工具要从SVN转到Git上,因此虽然之前用过Git,但是都是一些简单的推送提交,因此还是有必要进行一些系统的学习,这里做一下笔记,以备后询,且不定期更新. 关于SVN和Git的 ...

  4. Git 常用命令总结,将会持续更新

    平常在windows电脑上使用Git Extensions 工具比较多,大部分的常用指令都可以通过点点点就可以完成.在mac电脑上的话使用sourcetree工具.但有时候也会直接通过git命令,很多 ...

  5. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  6. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  7. 记录 git 常用的操作命令总结

    记录 git 常用的操作命令总结 2016-12-15 16:44:04 作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能.git 相较 SVN 而言,其优点不言而喻.git 的功能 ...

  8. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  9. git常用的命令集合

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...

随机推荐

  1. jQuery position() 源码解读

    position的代码比较简单... position: function() { if ( !this[ 0 ] ) { return; } var offsetParent, offset, el ...

  2. android的handle

    Handler的定义:  用来接收子线程发送过来的数据,并利用该数据直接更新主线程的UI. 安卓中,一个应用启动时会开启一个主线程(UI线程),他的责任是负责管理界面中的控件.比如当你点击一个Butt ...

  3. Java中,数值比较大小,以及数值判断相等

    Java中,数值比较大小,以及数值判断相等

  4. [问题记录]Java关于可变参数重载问题的测试

    突然发现java的可变参数重载是存在歧义的,只是不知道java内部是怎么处理的,特意做如下实验: 测试代码如下: /** * Created by ieayoio on 16-3-1. */ publ ...

  5. 2013上半年中国CRM市场分析报告

    经过了十多年的风风雨雨,CRM度过了漫长的市场培育期,即将迎来成熟期.目前这一阶段也是CRM惨烈搏杀的一个阶段,据不完全统计,国内大大小小的CRM厂商已经超过600家,各厂商几度火拼,努力扩大自己在C ...

  6. 慢慢积累遇到的linux指令

    sudo 用来以其他身份来执行命令,预设身份为root sudo apt install git 下载git sudo root 进入root身份(只有这个身份ubuntu和window系统之间才能共 ...

  7. git 设置了ssh key 还是需要输入账户和密码

    参考这篇文章https://blog.csdn.net/shahuhu000/article/details/86625987 git remote remove origingit remote a ...

  8. SqlDbx远程链接DB2数据库

    1.首先下载IBM的IBM Data Server Client,百度云链接:http://pan.baidu.com/s/1kVBVjan 密码:2gtz 2.安装好客户端之后,打开cmd,运行db ...

  9. POJ 3162 Walking Race (树的直径,单调队列)

    题意:给定一棵带边权的n个节点的树,首先要求出每个点的最长路,然后写成序列d[1],d[2]...d[n],然后求满足 区间最大值-区间最小值<=k 的最大区间长度为多少? 思路: 分两步进行: ...

  10. Python实现1-9数组形成的结果为100的所有运算式

    问题: 编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性.例如:1 + 2 + 34–5 + 67–8 + 9 = 100. f ...