文档章节

git基础命令和部分原理

Lubby
 Lubby
发布于 2015/11/18 13:11
字数 891
阅读 83
收藏 4

----git 中的一些概念

    1.工作区   当前直接操作的内容

    2.暂存区   临时存放改变的内容

    3.版本库   仓库中保存的内容

----git存储变化

    1.git add

        暂存区目录树更新

        修改或者增加的文件内容会写到对象库中的对象中

    2.git commit

        暂存区目录树写到版本库中

    3.工作区和暂存区比较

        git diff 

    4.暂存区和HEAD比较

        git diff --cached

    3.工作区和HEAD比较

        git diff HEAD

-----文件提交到本地仓库

    1.git status 

        查看文件修改情况

    2.git add  [filename]

        添加已修改的文件名

    3.git commit -m "reason for commit"

        将已加入的文件进行提交 并附上提交说明

-----文件push到远程仓库

    4.git push origin master

        把本地commit同步到远程仓库master分支

    

-----git相关命令

    1.git grep  hello

        在搜索所有工作区文件包含hello的内容

    2.git clone url   localName

        克隆一份拷贝到本地

    2.1 git clone url localName --bare

        拷贝一份裸仓库到本地

    3.git log --stat

        git log 能够查看所有提交的日志。 加上--stat表示显示每次提交文件变更统计

    4.git diff filePath

        对比修改的内容

    5.git commit --ament -m "sasdasd"

        提交到上一次的commit中,并且修改提交说明

    6.git stash

        将工作区和暂存区的改动全部封存起来

    7.git branch 

        查看所有分支,带星号的是当前所在分支

    8.git branch work

        创建名为work的分支

    9.git checkout work

        切换到名为work的分支

        git只有在根目录存在.git目录,这是工作区对应的版本库。

    10.git config --global alias.st status

        给git status 中 status设置别名为st

    11.git init demo

        初始化版本库demo

    12. git init demo --bare

    创建一个裸仓库,裸仓库的意思就是仓库不保留工作区的内容。只有设置这个才能让别人push代码。为什么要裸仓库才能被push,原意很简单,假设仓库有很多分支,每个分支的工作区可能不一样,这样以那个分支作为工作区呢?工作区对于不是用来开发的共享仓库有什么意义呢?所以作为集中的共享仓库是没有工作区的。

-----git找回代码

    1.git reset --hard HEAD^

        这个命令的意思是撤销前一个提交,不把之前的提交撤销到缓暂存区。 

        如果使用参数--soft,就是撤销前一个提交,并放入缓存区。        

    2.git reset --hard HEAD^

        这个命令是非常危险的,不过在git里面文件的修改记录依旧保存在.git中的objects目录。我们依然可以找回来。

        方法就是使用git reflog,这个可以看到所有的历史操作记录,然后找到上一次提交的sha1的值,通过git reset sha1值就能回到上一次提交的时间点。


------git把一个分支的提交合并到另一个分支

    git cherry-pick dc4de390ec48ee389ff93924c9b587a5d343e7a0


------git 打tag

    git tag -m "message for tag"  tag_1.1.0 <commitID>

    针对某个提交为止打tag。

    tag只是默认只是本地可见,需要显示推送到远程仓库


-----gerrit

    gerrit可以认为git代码审核工具。是用java写的。

    gerrit本身基于ssh协议实现了一套Git服务

--------推送项目到git仓库

git remote add origin git@github.com:lubby1990/netty-test.git

参考文献:Git权威指南  蒋鑫 


© 著作权归作者所有

Lubby
粉丝 55
博文 117
码字总数 67088
作品 0
杭州
程序员
私信 提问
做为web后端研发应该掌握的基础,欢迎补充

我就是个写代码的,工作中总遇到对ssh原理不理解,git操作不太熟练的,如果作为linux下面的后端开发,我想下面这些至少都是基础操作,该掌握的。 很多时候真实很无奈,你写的步骤操作说明,都...

扣丁禅师
2016/04/11
144
1
Git 最基本的操作命令

序言 Git操作是作为程序猿必备的一项技能,虽然现在各种git操作软件满天飞,但是很多人还是在merge、commit、add、pull、push中迷离了双眼,本文是最简单的git命令操作,旨在以最简洁的语言记...

LY丶Smile
2017/12/22
0
0
我是如何学习git

一开始学习git的时候,网上的git教程很多,看得人眼花缭乱,不知道如何下手。现在对git已经很熟悉了,回过头来总结一下学习方法。 一般官方文档是最全面,但是不一定适合快速上手。我们可以学...

好好编程
2017/11/14
0
0
Docker 快速发布SpringBoot项目

以Docker为容器以SpringBoot为基础发布微服务或者web已经成为一种比较便捷的方式。本节来实现由Docker Git来快速发布一个基于SpringBoot的web项目。 默认已经完成了SpringBoot的hello world...

MrPei
04/15
153
0
《Pro Git》翻译文2.7 - Git 别名

在我们结束本章 Git 基础之前,正好有一个小技巧可以使你的 Git 体验更简单、容易、熟悉:别名。 我们不会在之后的章节中引用到或假定你使用过它们,但是你大概应该知道如何使用它们。 Git ...

项勇
08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 如果是个帅小伙你愿意和他出去吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Ghost 》游戏《死亡搁浅》原声 《Ghost 》游戏(《死亡搁浅》原声) - Au/Ra / Alan Walker 手机党少年们想听歌,请使劲儿戳...

小小编辑
今天
195
7
java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部