git基本操作笔记


目录

Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。

1. 什么是git

简单的理解

  • git是一个开源的分布式控制版本控制系统
  • 可以有效记录每一次的修改提交操作
  • 可以配合多个开发人员相互协调性的工作
  • 可以将工程放在本地和远程操作

2.git与svn的区别

  • git是分布式的,svn是集中式的,这个区别也是最为核心的区别:因为 Git 是分布式的,所以 Git 支持离线工作,在本地可以进行很多操作。而 SVN 必须联网才能正常工作。
  • 在易用性这方面,SVN相对于git会好得多,简单易上手,对新手很友好。而git的使用,必须要先了解git的一些基本命令,如git init 、git pull、git push等等…
  • Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

3.git的安装及其配置流程

要使用Git,第一步当然是安装Git了

在Linux上安装Git

首先,你可以试着输入git,看看系统有没有安装Git:

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。

如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单。

老一点的Debian或Ubuntu Linux,要把命令改为sudo apt-get install git-core`

如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:**./config,make,sudo make install**这几个命令安装就好了。

Mac 平台上安装

在 Mac 平台上安装 Git 最容易的当属使用图形化的 Git 安装工具,下载地址为:

http://sourceforge.net/projects/git-osx-installer/

Windows 平台上安装
目前我个人的电脑用的是windows,所以我主要记录git在windows上面的安装操作
在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:

安装包下载地址:https://gitforwindows.org/ 或者直接搜索给git的安装

详细安装步骤如下:

1.从git官网下一个git安装包。

2.点击git.exe安装程序,点击【next】

3.选择安装目录

4、选择组件

5、开始菜单目录名设置

6、选择使用命令行环境

7、以下三步默认,直接点击下一步

alt text

8、安装完成

9、检验是否安装成功

回到电脑桌面,鼠标右击如果看到有两个git单词则安装成功

4.git的基本配置

git提供了一个叫** git config** 的工具,它用于专门配置或读取相应的工作环境变量

在gGit安装之后需要进行一些基本信息设置:

设置用户名

git config --global  user.name   【空格】"你在github上面注册的用户名"

设置用户邮箱

git config --global  user.email 【空格】 "你在github上面注册的用户邮箱";

检查是否配置成功

配置ok之后,我们用如下命令来看看是否配置成功:git config –list,或者在使用vim ~/.gitconfig
命令,如果显示内容是下面信息,则配置成功

[http]
    postBuffer = 2M
[user]
    name = runoob
    email = test@runoob.com

注意如下:

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

  • 设置用户名和用户邮箱时 ,一定不要忘记打空格,不然会报如下错误:

*** Please tell me who you are.  
Run
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to -detect email address (got 'Administrator@V92I2BPQSUKZBCB.(          

4.git的核心概念

git 最核心的一个概念就是工作流。

  • 工作区(Workspace)是电脑中实际的目录: 主要执行添加,编辑,修改文件等动作。

  • 暂存区(Index)类似于缓存区域,临时保存你的改动: 主要是暂存已经修改的文件最后统一提交到git仓库中。

  • 仓库区(Repository),分为本地仓库和远程仓库: 是最终确定文件保存到仓库,成为一个新的版本,并对他人可见。

简单的说,Git 工作的基本流程是

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 如果发现错误,可以撤回提交并再次修改并提交。

5.GIT仓库基本操作(版本库)

版本库的介绍(何为版本库)

版本库又名也叫仓库,英文名repositotry,可以简单的理解为一个目录,这个目录里面的使用文件都被给git管理起来,每个文件的修改、删除,git都会实时记录下来,这样方便了将每个每个时刻的更改恢复。

首先,选择一个合适的地方(我选择了D盘,我的电脑是Win 7),常见一个空目录:

$ cd D:      //切换到D盘
$ mkdir Git  //创建文件夹命令
$ cd Git     //切换到指定文件夹命令
$ git  init     //初始化本地git仓库

注意: 如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

1. 初始化本地git仓库(git init)

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。

在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,它是git进行跟踪和管理版本库,禁止修改删改此文件(如果没看到可能是您的电脑不显示隐藏文件,在命令行工具运行 ls -ah可查看);该目录包含了资源的所有元数据,其他的项目目录保持不变(不像 SVN 会在每个子目录生成 .svn 目录,Git 只在仓库的根目录生成 .git 目录)。

2.把文件添加到版本库(git add <文件名>)

我们新建一个文件,如gitNOte.txt文件,内容随便编辑,不过内容尽可能的有价值,内容编辑好后,一定要放到 你刚才创建的Git目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。

将一个文件放到Git仓库需要二步:

(1)使用git add将文件添加到仓库

$ git add gitNOte.txt

(2)使用git commit将文件提交到仓库

git commit -m "提交内容说明"

注:git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

git commit详解

commit可以一次提交多个自己想要指定提交的文件:

$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files."

也可以将全部文件添加

$ git add .   //将全部文件添加
$ git commit -m "将全部文件添加"

git status详解

我们已经成功地添加并提交了一个gitNOte.txt文件,现在我想继续修改gitNOte.txtt文件,

(1).查看文件内容命令

cat  gitNOte.txt  //查看文件内容命令 

(2).编辑文件内容命令

vi gitNOte.txt  //编辑文件内容命令 

修改完成后现在,运行git status命令看看结果:

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:  gitNOte.txt

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

这句话的大致意思是,你已经对gitNOte.txt文件进行了修改操作,,但还没有准备提交的修改,提交使用使用“git add<file>,放弃工作目录中的更改使用git checkout -- <file> ,放弃工作目录中的所有文件更改使用git checkout .

注意:前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的,控制台将显示:

$ git status
On branch master
nothing to commit, working tree clean
  • git diff(查看修改内容)
    比如你想知道gitNOte.txt文件在上一次更新时做了哪些改动 ,所以,需要用git diff这个命令看看,这个命令会显示你没改动前和改动后的内容显示给你,形成对比。

git回退到某个历史版本(版本回退)

使用git log命令查看所有的历史版本

当你每提交一个更改时,会形成一个新版本,实际上Git就会把它们自动串成一条时间线。如果使用可视化工具查看Git历史,就可以更清楚地看到提交历史的时间线

注意:最新的提交版本在最上面,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成git reset –hard HEAD~100。 如果觉得上面的 git log 显示的信息太多的话,可以使用命令 git log --pretty = online (注意是两个杠哦)

回滚到指定的版本

获取某个历史版本的id,假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96

git reset -- hard  139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96

(3).把修改推到远程服务器(强制提交)

git push -u origin master

回到现在(版本还原)

当你用$ git reset –hard HEAD^回退到过去版本时,再想恢复到回来,就必须找到你现在版本的id。Git提供了一个命令git reflog用来记录你的每一次命令:

步骤1.获取到版本号

git reflog   //查看命令历史,以便确定要回到未来的哪个版本。 

步骤2.根据显示的版本号回到现在

如我现在的版本号是:169dcfaa558e3276b30b6b2e5cbbb9c00bbdca96

git rest --hard  169dcfaa558e3276b30b6b2e5cbbb9c00bbdca96

撤销修改(git checkout –文件名称)

如果你在修改文件时,发现修改错了,想要撤销的话,可以使用以下命令:

git checkout --<file>     //file指的是文件的名称

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

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

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

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

注意1 :git checkout – 里面的双杠--不能漏掉,如果没有加,则又是一个命令的意思:切换到另一个分支命令

Git同样告诉我们,用命令git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区:

$ git reset HEAD  文件名
Unstaged changes after reset:
M    gitNOte.txt
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

注意2

  • 当你只在工作区修改了文件内容,并且没有将该内容用git add命令添加到暂存区时,想直接丢弃工作区的修改时,适用于以下命令:
git checkout --file
  • 当你只在工作区修改了文件内容,并且已经将该内容用git add命令添加到暂存区时,想丢弃修改,分两步,适用于以下命令:

(1)回到没有添加到暂存区之前

git reset HEAD  --<file>   //在Git中,用HEAD表示当前版本

(2)按照只在工作区修改了文件内容,没有将内容添加到暂存区的命令操作

git checkout --file

6.删除文件

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:

rm  文件名                         //rm是remove单词的简称 (移除的意思)

Git知道你删除了文件,git status命令会立刻告诉你哪些文件被删除了,现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:

rm 文件名称
git status
git  rm 文件名称
git commit -m"移除文件"

注意1:

  • 先手动删除文件,然后使用git rm 和git add效果是一样的。
    如果你不小心把不想删除的删除了,可以使用撤回命令.
git checkout --文件名称

注意2:

  • 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
git rm -f <file>

注意3:

  • 可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:
git rm –r *   //建议这个命令不要轻易用

进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录。

7.文件移动或者重命名文件(mv )

我们先把刚移除的 README 添加回来:

$ git add gitNOte

然后对其重名:

$ git mv gitNOte  gitNOte.txt
$ ls
README.md

8.git远程仓库

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?

好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,目的(为了确保数据传输的可靠性,因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的),如果你不配置相关命令,则每次本地仓库和远程仓库提交时,都需要验证密码,为了方便,所以,需要一点设置:

git设置免密码登录,生成ssh秘钥命令

创建SSH Key

ssh-keygen -t rsa -C “<email>

步骤1:命令输入完成后,一直回车。会在本地生成一个**.ssh**文件,打开该文件会看到默认保存位置当前 ~/.ssh/id_rsa(私密) 和id_rsa.pub(公密),将生成的公密用记事本打开,并复制。

步骤2:把id_rsa.pub里的复制内容添加到github的ssh keys里,一定不能有空格在密钥里面。
如下图:

“Add Key”,你就应该看到已经添加的Key:

点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

测试连通性

在git Bash 中输入以下代码

$ ssh -T git@github.com

当你输入以上代码时,会有一段警告代码,如:

The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:

Enter passphrase for key '/home/jeremy/.ssh/id_rsa':

当然如果你密码输错了,会再要求你输入,直到对了为止。

密码正确后你会看到下面这段话,如:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

如果用户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,则表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。

可以参考网站:

git使用以及免密码登陆

解决每次push代码到github都需要输入用户名和密码的方法

git-ssh 配置和使用

注意事项:在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去,造成信息泄露。如果你不想让别人看到Git库,有两个办法,一是:让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。

添加远程仓库(git remote)

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。

首先,登陆GitHub,然后,在右上角找到“New repository”按钮,创建一个新的仓库:

在Repository name填入studygit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

根据GitHub的提示,在本地的studygit仓库下运行命令

(1)将远程项目和本地项目进行关联

$ git remote add origin + 分支地址 //origin是远程库的名字,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库

(2).第一次推送master分支的所有内容到远程仓库

$ git push -u origin master   //第一次提交需要这么做,第二次提交就可以直接用`git push origin master`或者 `git push `

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

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

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样

从远程库克隆(git clone)

使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

如果你需要与他人合作一个项目,或者想要复制一个项目,看看代码,你就可以克隆那个项目。 执行命令:

 git clone [url]   //[url] 为你想要复制的项目

克隆完成后,在当前目录下会生成一个新 目录,即会远程的目录名称。
**注意事项
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。另外,Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

Git 分支管理

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。

创建分支命令

git branch 分支名称

切换分支命令

git checkout (branchname)

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

创建并切换分支

git checkout命令加上-b参数表示创建并切换

git checkout -b + 分支名称
相当于以下两条命令
git branch 分支名称
git checkout (branchname)

列出分支基本命令

git branch

没有参数时,git branch 会列出你在本地的分支,默认是master。

$ git branch
* master //意思是:有一个叫做 master 的分支,并且该分支是当前分支

如果需要查看每一个分支的最后一次提交,可以运行 git branch -v 命令:

如果我们要手动创建一个分支。执行 git branch (branchname) 即可。

$ git branch A  //A为分支名称
$ git branch
* master
  A

现在我们可以看到,有了一个新分支 A。

当你以此方式在上次提交更新之后创建了新分支,如果后来又有更新提交, 然后又切换到了 testing 分支,Git 将还原你的工作目录到你创建分支时候的样子。

使用分支将工作切分开来,从而让我们能够在不同开发环境中做事,并来回切换。

删除分支

git breach -d 分支名称

例如我们要删除A分支:

$ git branch
* master
A
$ git branch -d A
Deleted branch A (was 85fc7e7).
$ git branch
* master

分支合并

一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去:

git merge

切换回master分支后,把A分支的工作成果合并到master分支上:

$ git merge A

合并完后就可以删除分支:

$ git branch -d  A 

如果真的想要删除分支并丢掉那些工作,如同帮助信息里所指出的,可以使用 -D 选项强制删除它。

Git鼓励大量使用分支:



查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

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

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

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

解决分支合并的冲突

如果master分支和A分支各自都分别有新的提交,这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
再提交:

$ git add gitnote.txt 
$ git commit -m "conflict fixed"
[master cf810e4] conflict fixed

注意
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

用git log –graph命令可以看到分支合并图。

多人协作

当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。

要查看远程库的信息,用git remote

$ git remote
origin

或者,用git remote -v显示更详细的信息:

$ git remote -v
origin  git@github.com:michaelliao/learngit.git (fetch)
origin  git@github.com:michaelliao/learngit.git (push)

上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。

推送分支

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

$ git push origin master

如果要推送其他分支,比如dev,就改成:

$ git push origin dev

创建远程origin的dev分支到本地,于:

$ git checkout -b dev origin/dev

多人协作的工作模式通常是这样:

首先,可以试图用git push origin <branch-name>推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

9.git标签

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。你可以使用 git tag 给它打上标签。

创建标签

  在Git中打标签非常简单,首先,切换到需要打标签的分支上

$ git branch -b master
Switched to branch 'master'  //切换到分支“master”

现在,我想为我的gitstudy 项目发布一个”1.0”版本。 我们可以用 git tag -a v1.0 命令给最新一次提交打上(HEAD)”v1.0”的标签。

指定标签并描述标签信息

$ git tag -a v1.0 -m “描述内容”

**注意1.**:-a 选项意为”创建一个带注解的标签”,为标签名称,-m指定说明文字。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签。 我们可以看到在提交对象信息上面,列出了此标签的提交者和提交时间,以及相应的标签说明

查看标签

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签怎么办呢?方法是找到历史提交的commit id,然后打上就可以了

(1).先用命令查看每次提交commit id

git log --oneline  //将会显示每次提交的commit id

(2).比方说要对create b.txt这次提交打标签,它对应的commit id是9ac9296,敲入命令

git tag vo.9  9ac9296

注意,标签不是按时间顺序列出,而是按字母排序的。查看标签信息可以用以下命令:

(3)。可以用命令git tag查看所有标签:

$ git tag
v0.9
v1.0

(4).可以用git show 查看标签信息

git show v1.0

删除标签

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

$ git tag -d  标签名称

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

  默认情况下,git push并不会把标签传送到远端服务器上,只有通过显式命令才能推送标签到远端仓库

$ git push origin <tagname>

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

$ git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除

$ git tag -d  标签名称

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

git push origin  标签名称

最后一个问题,如何查看发送到远程的标签呢?

点击Github项目中的release即可看到。

10.忽略特殊文件

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,这个时候,你急需要一个办法把不想提交的东西不上传到仓库。好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

创建.gitignore文件

创建一个文件,文件名为:“.gitignore.”,注意前后都要有一个点,保存之后系统会自动重命名为“.gitignore”。或者用git bush创建touch.gitignore在文件夹就生成了一个“.gitignore”文件。

创建.gitignore文件

以问号“?”通配单个字符

以星号“*”通配多个字符

以斜杠“/”开头表示目录

以方括号“【】”包括单个字符的匹配列表;

以叹号“!”表示不忽视匹配到的文件或目录;

此外。git对于.ignore配置文件是按照从上往下进行匹配的,意思就是如果前面的规则匹配的范围更大,则后面的规则将不会生效。

实例

(1)规则: fd1/*
  说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;

(2)规则:/fd1/*
  说明:忽略根目录下的 /fd1/ 目录的全部内容;

(3)规则:
    /*
    !.gitignore
    !/fw/bin/
    !/fw/sf/

说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;


文章作者: BiLiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BiLiang !
评论
 上一篇
利用github平台和PicGo工具来搭建自己的图床 利用github平台和PicGo工具来搭建自己的图床
PicGo是一款图片上传工具,目前支持SM.MS图床、腾讯云COS、微博图床、GitHub图床、七牛图床、Imgur图床、阿里云OSS、又拍云图床,未来将支持更多图床。
2020-11-03
下一篇 
React的生命周期 React的生命周期
在组件的整个生命周期中,随着该组件的props或者state发生改变,其DOM表现也会有相应的变化。一个组件就是一个状态机,对于特定地输入,它总返回一致的输出。简单的说:生命周期函数指在某一个时刻组件会自动调用执行的函数。
2020-10-27
  目录