git的命令行操作

Git 命令行使用


一、git简介:

Linux创建了Linux,但是Linux的发展壮大是由世界各地的热心志愿者参与编写的?那么那么多份的代码是怎么合并的呢?之前是在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

   Git是由Linus花了两周时间自己用C写了一个分布式版本控制系统 。2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。


二、集中式的版本控制系统和分布式版本控制系统的不同

集中式的版本控制系统: 代表有CVS 、SVN

特点: 版本库集中存放在中央服务器 必须联网才能工作 如果中央服务器的代码被恶意修改了,所有人的代码都可能会有问题

只能跟踪文本文件的改动,比如txt文件,网页,所有的程序代码等

分布式版本控制系统的是 Git

特点: 版本库在自己的电脑上 不需要联网也能工作 安全性高 只能跟踪文本文件的改动,比如txt文件,网页,所有的程序代码等

强烈建议使用UTF-8编码 所有语言使用同一种编码,既没有冲突,又被所有平台所支持


三、 安装Git

 在Linux上安装Git

1. 如果碰到Ubuntu或Debian 请使用下面命令:

$ git //这条命令检查系统中是否有Git

sudo apt-get install git // 如果没有,则使用这条命令来进行安装Git

2. 如果碰到的是 CentOS 请使用下面命令:

$ git // 这条命令检查系统中是否有Git

sudo yum install git

在Windows上安装Git

1. 如果是32位系统 请使用安装包

[32位系统的Git](./Other/Git-2.14.3-32-bit.exe)

2. 如果是64位系统 请使用安装包

[64位系统的Git](./Other/Git-2.14.3-64-bit.exe) 

在Mac OS 上安装Git

自己上Git官网搜索 直接下载使用

四、Git安装好了,那么下面我们来一起使用

 版本仓库(repository),那么说是一个文件夹更好理解

> 1. 选择一个合适的地方,创建一个空目录

#打开命令行工具,输入命令 代表新建了一个名字为git的文件夹

mkdir git

# 进入Git文件夹中

cd git

# 查看该文件夹的绝对位置(在windows中) **如果看到输入的pwd中有中文 请确保你的路径中没有中文**

pwd


> 2. 把刚才创建的文件夹目录变成git可以管理的仓库

# 初始化仓库

git init

# 如果你的文件夹中没有任何内容将会得到如下输出结果 代表是初始化了一个空的Git仓库

Initialized empty Git repository in F:/git/.git/

 注意: 在使用之前我们来理解一些概念  -----工作区和暂存区---

> 名词解释

1.工作区(Working Directory)      :   就是你在电脑里能看到的目录,比如我的GitHub文件夹目录

2.版本库(Repository):     在工作区有一个隐藏目录.git,这个就是Git的版本库

3.暂存区:    在版本库中存在一个成为Stage的暂存区,它是专门存储修改和添加的区域。一旦提交后,如果你又没有对工作区做任何修改,那么暂存区就是干净的

## 管理修改(需要案例证明)

为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。

> Git不会提交没有放到暂存区的修改

这里我画了一个图方便大家理解

看了这个图是不是理解了他的工作机制了呢?

下面继续-------------------------------------------------

1  现在我们编写一个first.txt 文件,并把该文件提交修改到git版本库

# 把要提交的文件添加到版本库

git add 文件名

# 把要提交的文件提交到版本库

git commit -m "本次提交的说明"

我们再次对文件进行修改  

#查询工作区和版本库的文件状态,红色的代表修改后的文件在工作区,没有添加到暂存区或者提交

#我们来 把刚才的修改后的文件添加和提交一下


> 2. 查看提交的日志记录

# 查看我们提交的历史记录

git log 或 git log --pretty=oneline

git log --pretty=oneline 这个命令让每次提交信息都在一行显示 更清晰直观  前面一串字母和数字代表了每次提交的id号,我们可以根据id 和提交信息找到对应的文件版本,是不是很方便呢

再修改提交几次

next 就是怎么找回以前版本-----惊喜在下面!!!!!

> 3. 版本回退

# 把版本回退到前面的版本 当前版本 HEAD 上一个版本HEAD^ 往上100个版本 HEAD~100

git reset --hard HEAD^

当前版本查询(fourth commit)

上一版本查询(second commit)

......

> 4. 查看自己的每一次命令的记录

# 如果回退到某一个版本之后又后悔了,那么可以再回到某一次提交,这时可以查看自己的写过的命令

git reflog (可以看到全部的提交信息,及版本回退记录)

这时候根据id和提交信息就可以轻松找回你需要的那个版本了

> 5. 回到某一次的提交

# 回到某一次提交就要找到某一次提交的id ,使用fit reflog可以查看自己的命令id

git reset --hard id号(比如找回第四次提交的版本)git reset --hard 第四次提交版本的id号,这样当前版本就是第四次提交的版本啦


## 撤销修改

> 1.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时

命令: git checkout -- file

> 2.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改

1. git reset HEAD file

2. git checkout -- file

## 删除文件

> 1.确实要删除

git rm  文件名  把文件删掉

通过git 和 commit 操作的文件 如果在文件夹中 自己手动删除 Git是能跟踪到的

使用 git status

> 2.删错了

git checkout -- files

注意:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

现在你可能遇到了两种情况:

1 在git commit 之前 那么就用git checkout -- .\rewrite.txt 撤销

2 如果在git commit之后 那么就用git reset -- hard id 就可以回退到你删除的这个文件版本下



## 创建与合并分支

> 1.查看分支

git branch

> 2.创建分支

git branch 分支名字

> 3.切换分支

git checkout 分支名字


> 4.合并某分支到当前分支

git merge 分支名字(不是当前的分支)

> 5.删除分支

git branch -d 分支名字

> 6.当git上面的地址发生变化:


## 解决冲突

出现冲突

1 在主分支上有一个文件 confit.txt

2 然后新建一个分支queen

3 切换到新分支

4 在这个新分支上建一个文件 confit.txt

5 更改文件的内容 在新分支上提交

6 切换分支到主分支 ,修改confit.txt(和在新分支上修改同一行)

7 提交

8 合并分支,即出现了冲突


解决方案:商量保留谁提交的内容,然后手动删除被舍弃的内容,最后执行添加并修改


##bug分支

情景:undong.txt 工作还没做完(暂存区有很多add文件,这时还没有commit),这时接收到一个必须在两小时内完成的bug文件(和之前的工作无关)

1 这时就要保存工作现场 git stash

2 添加新分支 git branch fixbug

3 切换到这个分支 git checkout fixbug

4 git add bug文件

5 提交 git commit

6 删除该分支(一般情况应该合并)

查看分支现场 git

7 修复之前的分支 git stash pop


分类: HTML/CSS

转载:https://www.cnblogs.com/queen-live/p/7806138.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336