Git 学习笔记

1. Git 简介

版本控制系统分为分布式版本控制系统和集中式版本控制系统,而 Git 属于分布式版本控制系统。

2. Git 的基本使用


2.1 配置 Git

git config --global user.name "opendragonhuang"
git config --global user.email "opendragonhuang@outlook.com"
因为 Git 是分布式版本控制系统,所以每个机器都必须自报家门,也就是用户的名字 和 Email 地址。在上面的命令中,有一个--global参数,这个参数表示的含义是此次设置为全局设计,也就是说此台计算机上的所以 git 仓库都使用这个配置。

2.2 创建版本库

版本库又名为仓库,英文名为 repository,可以简单的理解为一个目录,这个目录里的所以文件都可以被 Git 管理起来。每个文件的修改、删除,Git 都能够去追踪,以便时刻都可以查看历史或者在将来的某个时刻还可一将文件「还原」。当版本库创建成功后,版本库所创建的的目录下会多了一个.git目录,这个目录便是 Git 来跟踪管理版本的。

在合适的位置创建一个目录,创建目录成功后进入此目录,使用 git init 命令把此目录变成一个 Git 版本库。

mkdir git_test
cd git_test
git init


2.3 向版本库添加文件

在 Git 中,用户使用的目录称为工作空间。.git目录为版本库。版本库里面包含两部分,一部分是 Index/Stage,中文含义是暂存区,另一部分是是 master 分支。一般情况下,用户在工作空间里新建了一个文件或是修改了文件,要被 Git 管理,需要经过两个步骤:

1. 把创建的文件或修改的文件添加到暂存区。
2. 把暂存区里的所有文件提交到分支中去。

假设用户在工作区里新建了一个 README.MD 文件,添加到 Git 中的过程如下:

git add README.MD
git commit -m "add README.MD"
-m:后面跟着是本次提交的说明信息,建议每一次提交时,都要有说明信息。

2.4 其他常用的 git 命令

命令 功能
git status 获取当前版本库的状态(最常用的 git 命令)
git diff 当使用 git status时提示文件被修改了,可以使用 git diff查看修改了那些内容。


2.5 注意事项

所以的版本控制系统都只能跟踪文本文件的修改,无法跟踪二进制文件的修改。


3. 版本回退

查看提交的历史记录(加--pretty=online参数可以简化输出)

git log 

回退到以前的版本

git reset --hard HEAD^
git reset --hard HEAD^^
git reset --hard HEAD~100
git reset --hard commit_id

在 Git 中,有一个 HEAD 指针,此指针指向当前的版本。当版本回退时,HEAD 指针就会指向回退到的版本。

commit_id 的通过使用git log命令来得到。当使用git reset回退到以前的版本后,如果要回到未来的版本的话,此时使用git log是无法再得到未来的commit_id的,为了得到未来的commit_id,可以使用git relog来查看。

4. 暂存区、工作区和版本库

在工作区中,使用git add把修改添加到 stage/index 中,使用git commit则是把 stage/index 中所有的修改提交到当前所在的分支中去。在 Git 中跟踪并管理的是修改。

5. 撤销修改

1. 使用 git checkout -- fileName 命令的两种含义

  • fileName 自修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态。
  • fileName 已经被添加到暂存区,又作了修改,撤销修改就是回到 fileName 添加到暂存区还没被修改的状态。
    2. git reset HEAD fileName
  • 把暂存区的修改撤销掉,放回工作区。

6. 删除文件

手动删除掉了工作空间的文件时,使用git status就会提示有文件被删除了,此时有两种情况:

1. 确实要删除此文件

git rm fileName
git commit -m "delete fileName"

2. 误删文件,想还原被删的文件

git checkout fileName


7. 本地仓库与 Github 远程仓库相关联


7.1生成 ssh 秘钥

因为本地的 Git 仓库和 Github 仓库的传输是通过 ssh 加密的,所以本地的 git 仓库与 github 仓库进行通信首先是生成 ssh 秘钥。创建 ssh 密钥的命令如下:

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

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

登陆GitHub,打开「Account settings」,「SSH Keys」页面,然后点「Add SSH Key」,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。


7.2 关联远程库

  • 已有本地库,与远程库关联

    1. 在 Github 创建一个仓库
    2. 把本地库和远程库关联

    git remote add origin 「github repository url」

    3. 把本地库推送到远程库

    git push -u origin master

    加上了-u参数,Git 不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

  • 没有本地库

    1. 在 Github 创建一个仓库
    2. 把 Github 的参考克隆下来

    git clone github repository url


8. 分支的基本操作

命令 功能
git branch 查看当前分支
git branch 创建分支
git checkout 切换分支
git checkout -b 创建+切换分支
git merge 合并某分支到当前分支
git branch -d 删除分支
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务