Git

文章の目录

Git 安装配置

安装包下载地址

查看安装版本信息

配置

用户信息

查看配置信息

Git 工作区、暂存区和版本库

Git 基本操作

创建仓库

git init

git clone

提交与修改

git add

git commit

git status

git reset

提交日志

git log

git blame

远程操作(Git 远程仓库(Github、Gitee))

git remote

git push

git pull

Github(Gitee)

团队合作

Git Pages


正文

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 安装配置

安装包下载地址

Git 各平台安装包下载地址为:https://git-scm.com/downloads

查看安装版本信息

配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

用户信息

配置个人的用户名称和电子邮件地址:

git config --global user.name "myName"
git config --global user.email "myEmail@163.com"

注:

  • 如果用了 --global 选项,那么更改的配置文件就是位于用户主目录下的那个,以后所有的项目都会默认使用这里配置的用户信息。
  • 如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

git config --list

注:

  • 有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig~/.gitconfig),不过最终 Git 实际采用的是最后一个。

也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

git config user.name
git config user.email

Git 工作区、暂存区和版本库

工作区:即电脑里能看到的目录。

版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以暂存区有时也叫作索引(index)。

下图展示了工作区、版本库中的暂存区和版本库之间的关系:

  • 图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage/index)。
  • 标记为 “master” 的是 master 分支所代表的目录树。
  • “HEAD” 指向最后一次提交的结果。图中我们可以看出此时 “HEAD” 实际指向 master 分支。
  • 图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。
  • 当对工作区新增(或修改)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区新增(或修改)的文件内容被写入到对象库中的一个新的对象中,而该对象的 ID 被记录在暂存区的文件索引中。
  • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
  • 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
  • 当执行 git rm --cached <file> 命令时,会直接从暂存区删除文件,工作区则不做出改变。
  • 当执行 git checkout . 或者 git checkout -- <file> 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
  • 当执行 git checkout HEAD . 或者 git checkout HEAD <file> 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

Git 基本操作

创建仓库

git init

初始化仓库。

Git 使用 git init 命令来初始化一个 Git 仓库。

在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录(.git 默认是隐藏的)。

命令格式:

使用当前目录作为 Git 仓库,我们只需使它初始化:

git init

git clone

拷贝一份远程仓库,也就是下载一个项目。

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

命令格式:

git clone [url]
git clone https://gitee.com/rookie-li/git-study.git

拷贝完成后,会在当前目录下生成一个 git-study 目录。

默认情况下,Git 会按照提供的 URL 所指向的项目的名称创建本地项目目录。通常就是该 URL 最后一个 / 之后的项目名称。

如果想要一个不一样的项目名称,可以在该命令后加上想要的名称:

git clone https://gitee.com/rookie-li/git-study.git new-git-study

提交与修改

git add

添加文件到暂存区。

命令格式:

添加一个或多个文件到暂存区:

git add [file1] [file2] ...
git add gitTest.txt

添加当前目录下的所有文件到暂存区:

git add .

git commit

提交暂存区到本地仓库。

git commit 命令将暂存区内容添加到本地仓库中。

命令格式:

提交暂存区到本地仓库:

git commit -m [message]
git commit -m "gitTest 01"

提交暂存区的指定文件到本地仓库:

git commit [file1] [file2] ... -m [message]
git commit gitTest.txt -m "gitTest 01"

-a 参数设置修改文件后不需要执行 git add 命令,直接来提交:

git commit -a -m "changed some files"
git commit -am "changed some files"

注:

  • -a 不会造成新文件被提交。

注:

commit 之前需要先设置提交的用户信息,包括用户名和邮箱。

git status

git status 命令用于查看在上次提交之后是否有对文件进行再次修改。

git reset

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

提交日志

git log

查看历史提交记录。

git blame <file>

以列表形式查看指定文件的历史修改记录。

远程操作(Git 远程仓库(Github、Gitee))

由于本地 Git 仓库和 GitHub(Gitee) 仓库之间的传输是通过 SSH 加密的,所以需要配置验证信息。

步骤:

1、使用以下命令生成 SSH Key:

ssh-keygen -t rsa -C "youremail@example.com"

输入命令后会要求确认路径和输入密码,使用默认的一路回车就行。

成功的话会在 ~/ 下生成 .ssh 文件夹。进去,打开 id_rsa.pub,复制里面的 key。

2、回到 GitHub(Gitee),进入 Settings(设置):

git remote

git remote 命令用于在远程仓库的操作。

显示所有远程仓库:

git remote -v

显示某个远程仓库的信息:

git remote show [remote]
git remote show origin

添加远程仓库:

git remote add [shortname] [url]
git remote add origin git@gitee.com:rookie-li/git-test.git

/*
    origin 为远程地址的别名
*/

删除远程仓库:

git remote rm name

修改仓库名:

git remote rename old_name new_name

git push

git push 命令用于将本地的分支版本上传到远程并合并。

命令格式:

git push <远程主机名(远程仓库名)> <本地分支名>:<远程分支名>
git push origin master:master

如果本地分支名与远程分支名相同,则可以省略冒号:

git push <远程主机名> <分支名>
git push origin master

git pull

git pull 命令用于从远程获取代码并合并本地的版本。

命令格式:

git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前分支合并,则冒号后面的部分可以省略:

git pull <远程主机名> <远程分支名>

Github(Gitee)

团队合作

一个小组共用一个仓库,由团队中的某个成员创建。

将组内所有人设置为本仓库的协作者,邀请方式为:Settings -> Collaborators -> Manage access -> Add people(管理 -> 仓库成员管理 -> 添加仓库成员)。

组员每次提交成果之前,先拉取远程仓库最新版本,再进行自己的操作。

Git Pages

设置 Git Pages 可以分配一个地址,直接显示网页的效果。操作如下:

Github 操作:

1、打开仓库

2、点击 settings 选项,往下滑找到 Pages

3、将 Source 下的 none 改成 master branch

成功后会给一个链接,如下:

上图中的链接是给到了仓库根目录,具体想显示哪个页面,再根据相对路径找到对应的页面即可。如:https://lihuichaolihuichao.github.io/my-gitbook/index.html

Gitee 操作:

1、点击服务下 Gitee Pages。

2、完成实名认证后进行相关设置即可。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值