美文网首页
2018-10-07

2018-10-07

作者: 违和感_4db4 | 来源:发表于2018-10-07 22:43 被阅读0次

前言

这是我第一篇与计算机技术直接相关的博客,自己也是因为兴趣,慢慢的自己想了解一些和这方面相关的知识,同时这也是在加入EPI实验室后第一次相关的任务,所以在这七天里认真准备了一下,文章定然存在一定的缺陷,希望能得到大家的支持与肯定。

关于这篇博客

我所写的这篇博客大部分资料来源于网易云课堂中关于git的课程,具体链接如下https://study.163.com/course/courseMain.htm?courseId=1003268008,我所做的只是加以整理,以方便以后的学习与工作。如有任何相关的知识产权问题,请直接与我联系。

关于git(来自廖雪峰的博客)

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有什么特点?简单来说就是:高端大气上档次!

那什么是版本控制系统?

如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:

想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:

image

过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。

看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。

更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。

于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?

这个软件用起来就应该像这个样子,能记录每次文件的改动:

版本文件名用户说明日期

1service.doc张三删除了软件服务条款57/12 10:38

2service.doc张三增加了License人数限制7/12 18:09

3service.doc李四财务部门调整了合同金额7/13 9:51

4service.doc张三延长了免费升级周期7/14 15:17

这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

在Windows上安装Git

msysgit是Windows版的Git,从https://github.com下载然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后一步设置,在命令行分别输入用户名和邮箱即可完成配置。

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

Git 基本操作

因为GIT的操作命令比较多,这里就列举出来几个比较典型而且常用的命令,其余的命令在需要使用的时候可以上网查找。

git init

这个命令我们上面有提到过,是创建库的售后使用的,在任何的目录下都可以使用。输入:

git init

就可以创建一个GIT库了。

git clone

用git clone可以将GIT库拷贝到本地,然后自己进行修改和查看。

输入:git clone[url]

[url]为你想要复制的项目(可以是网址),就可以克隆了。这里的网址可以在github的库里找到(还没学会如何插入图片,以后再做补充)

git add

可以将文件添加到缓存。

git add

add后面可以加文件名,也可以加 “.” 代表添加所有文件。

git status

git status

它可以查看你的你的修改,可以和 “git add” 配合使用,同时在status后面添加 “-s”可以查看简短的信息,否则输出详细信息。
如:

$ git status -s
A README
A hello.php

$ git status
On branch master

Initial commit

Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README
new file: hello.php

git diff

这个用来查看写入缓存前后的区别,可以分为以下几类:

  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff --cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat
    在first.php下输入内容为:

<?php
echo 'hello';
?>

$ git status -s

A README
AM hello.php
$ git diff
diff --git a/hello.php b/hello.php
index e69de29..69b5711 100644
--- a/hello.php
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo 'hello';
+?>

git commit

这个命令我们前面也提到过,他可以将暂存区的文件提交到版本库中去。在进行要求配置用户名和邮箱。

$ git config --global user.name 'github'

$ git config --global user.email git@qq.com

“first commit”为第一次提交

git reset HEAD

用于取消已缓存的内容。

$ git status -s
M README
M hello.php

$ git add .

$ git status -s

M README
M hello.pp
$ git reset HEAD hello.php

Unstaged changes after reset:
M hello.php
$ git status -s
M README
M hello.php

作者:不懂套路
链接:https://www.jianshu.com/p/c05c66b3c9fe
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Git 分支管理

Git 分支管理

意味着从主线分开一个支路,同时工作。
创建分支:

git branch (branchname)

切换分支:

git checkout (branchname)

合并分支,将多个分支合并在一起:

git merge

列出分支

列出分支的命令:

git branch

$ ls

README
$ echo 'test' > test.txt

$ git add .

$ git commit -m 'add test.txt'

[master 048598f] add test.txt
2 files changed, 1 insertion(+), 3 deletions(-)
delete mode 100644 hello.php
create mode 100644 test.txt
$ ls

README test.txt

$ git checkout first

Switched to branch 'first'
$ ls
README hello.php

当我们切换到"first"分支的时候,我们添加的新文件test.txt被移除了, 原来被删除的文件hello.php文件又出现了。切换回"master"分支的时候,它们有重新出现了。

$ git checkout master

Switched to branch 'master'
$ ls
README test.txt

删除分支

删除分支命令为:

git branch -d (branchname)

删除first分支:

$ git branch

  • master
    first

$ git branch -d first

Deleted branch first (was 85fc7e7).
$ git branch

  • master
分支合并

$ git branch

  • master
    newtest
    $ ls
    README test.txt test2.txt

$ git merge newtest

Updating 2e082b7..556f0a0
Fast-forward
test2.txt | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 test2.txt
$ ls
README test.txt

以上将newtest合并到主分支上去,test2.txt被删除。

合并冲突

首先,我们创建一个叫做"change_site"的分支,切换过去,我们将内容改为 hello。

$ git checkout -b change_site

Switched to a new branch 'change_site'
$ vim test.txt

$ head -1 test.txt

hello
$ git commit -am 'changed the site'
[change_site d7e7346] changed the site
1 file changed, 1 insertion(+), 1 deletion(-)

将修改的内容提交到 "change_site" 分支中。 现在,假如切换回 "master" 分支我们可以看内容恢复到我们修改前的,我们再次修改test.txt文件。

$ git checkout master

Switched to branch 'master'
$ head -1 test.txt

hi hello
$ vim test.txt

$ cat test.txt

runoob.com
新增加一行
$ git diff

diff --git a/test.txt b/test.txt

index 704cce7..f84c2a4 100644
--- a/test.txt
+++ b/test.txt
@@ -1 +1,2 @@
hi hello
+新增加一行
$ git commit -am '新增加一行'
[master 14b4dca] 新增加一行
1 file changed, 1 insertion(+)

现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。

$ git merge change_site

Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
$ cat test.txt
<<<<<<< HEAD
hi hello
新增加一行
=======
hello

change_site

我们将前一个分支合并到 "master" 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

$ vim test.txt

$ cat test.txt

hello
新增加一行
$ git diff
diff --cc test.txt
index f84c2a4,bccb7c2..0000000
--- a/test.txt
+++ b/test.txt
@@@ -1,2 -1,1 +1,2 @@@

  • hi hello

  • hello
    +新增加一行

在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决

$ git status -s

UU test.txt
$ git add test.txt

$ git status -s

M test.txt
$ git commit
[master 88afe0e] Merge branch 'change_site'

现在我们成功解决了合并中的冲突,并提交了结果。

相关文章

  • English note

    2018-10-07 A句:Any threat of monopoly, they argue, is remo...

  • 游走在佛罗伦萨小镇

    图片拍摄于:天津 - 武清 - 佛罗伦萨小镇 拍摄日期:2018-10-07

  • RecyclerView实现探探卡片滑动功能及优化

    title: RecyclerView实现探探卡片滑动功能date: 2018-10-07 10:35:56tag...

  • 2018-10-08

    2018.10 101个目标 贾红梅 2018-10-07 09:47 · 字数 902 · 阅读 0 · 日记本...

  • 2018国庆

    2018国庆 刘晓田 2018-10-07 老人精神矍铄, 孩子淘气聪慧。 吾辈努力不懈, 心怀感...

  • 爱看车流的"铅宝宝"

    (11)爱看车流的“铅宝宝” 晨小贝 已关注 2018-10-07 20:10 · 字数 1399 · 阅读 16...

  • 2018-10-09

    摘洋扁豆 庞芸熙 (修改稿) 庞芸熙 2018-10-07 12:26 · 字数 273 · 阅读 9 · 日记...

  • 时光机003

    2018-10-07 睡觉时间:24:30 起床时间:07:00 morning 早上的时光非常棒,学习英语太棒了...

  • 每日前端签到(第六十四天)

    第六十四天(2018-10-07) [html] 写个例子说明HTML5在移动端如何打开APP? [css] 说说...

  • 《晨间日记的奇迹》读后感

    慈善家小雪 2018-10-07 11:49 · 字数 377 · 阅读 10 · 日记本 第一次读这本书是好朋友...

网友评论

      本文标题:2018-10-07

      本文链接:https://www.haomeiwen.com/subject/yfiraftx.html