git使用

作者: 帆人自书 | 来源:发表于2019-05-27 10:57 被阅读0次

Git是什么?

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

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

那什么是版本控制系统?

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

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

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

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

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

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

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

版本文件名用户说明日期

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

建立本地仓库

在需要建立仓库的目录下(前提是安装了git)使用git,通过git init 命令把这个目录变成Git可以管理的仓库

把文件放入git仓库

把一个文件放到Git仓库只需要两步:

1.用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

2.用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"

-m "说明"       是本地提交内容的备注说明。

查看仓库状态

当我们修改文件时,运行git status查看结果;比如当我们修改readme.txt文件内容后运行git status:

$ git status

On branch master

Changes not staged for commit:

modified: readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

上面的命令输出告诉我们,readme.txt被修改过了,但还没有准备提交的修改。可以看到有哪个文件被修改过,此时是否添加入库,此时是否提交。

虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:

$ git diff readme.txt 

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

--- a/readme.txt

+++ b/readme.txt

@@ -1,2 +1,2 @@

-Gitisa version control system.

+Gitisa distributed version control system. 

Gitisfree software.


版本回退

每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit(commit一次就是一个版本)。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令

git reset --hard commit_id

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

回退后如果想回到以前版本怎么办?只要你的命令行窗口还没关掉,找到之前的id(1094a.....),于是就可以指定回到未来的某个版本。

$ git reset--hard 1094a

HEADisnowat83b0afe append GPL

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。

撤销修改

git checkout -- file可以丢弃工作区的修改:

$ git checkout -- readme.txt

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

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

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。

建立连接远程仓库

把远程仓库和本地仓库连接:

git remote add origin git@github.com:自己的账户名/项目名称.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上:

$ git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

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

创建合并删除分支

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev

Switchedto a new branch'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev

$ git checkout dev

Switchedto branch'dev'

然后,用git branch命令查看当前分支:

$ git branch

* dev  

master

现在,我们把dev分支的工作成果合并到master分支上:

$ git checkout master(切换到master分支)

$ git merge dev(把dev合并到master分支) 

git merge命令用于合并指定分支到当前分支  

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev

Deletedbranch dev (was b17d20e).

相关文章

  • Git常规使用

    Git怎么使用?使用 git commit 进行提交操作时,Git都做了什么? Git怎么使用? 下载、安装Git...

  • AD 使用 Git 的注意事项

    使用 Git 管理项目 Altium Designer 支持使用 Git/SVN 用以版本控制。如果使用 Git,...

  • git

    使用git add . 代替 git add *使用git add之后,怎样恢复?

  • GIT和Github

    #Git的初识 ##Git 的使用 Git 使用初尝试 新建项目来操作 克隆已有项目来操作 Git 的使用 by ...

  • git代理配置

    git http 使用 http proxy git http 使用 https proxy git http 使...

  • Git命令使用

    Git命令使用 前言在使用Git命令之前都使用可视化工具SourceTree操作git,现在需要Git Andro...

  • 前端学习路线(2)——Git使用、DIV+CSS布局

    Git使用、DIV+CSS布局 1. Git使用 链接:git下载链接:git for windows(下载速度可...

  • vscode操作git总让输入用户名密码

    clone使用git地址,不要使用https地址修改.git/config文件中的url = git@git.pl...

  • git 操作以及submodule模式详解,附加jenkins对

    git常用命令 注意:请确保已经安装里git客户端 git使用帮助 git --help //git使用帮助,可...

  • git

    *** git checkout 也可以直接 reset ***使用Git进行项目存储使用git pull时,项目...

网友评论

      本文标题:git使用

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