1. GiT简介
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
版本控制系统(version control system)顾名思义就是控制管理不同版本的项目。在我们修改和提交项目代码的过程中,主要用于管理和恢复之前的版本,以防丢失。
2. 安装Git
在Windows系统下使用Git,直接在Git 官网下载程序,双击后按照默认选项安装即可。
安装完成后,打开cmd命令行,需要完成以下设置才可以使用:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
3. 创建一个版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
在Windows下,任意一个文件夹都可以被创建为一个repository,只需要进入该文件夹内,在空白的地方右键,然后选择Git Bash Here,就是在此文件夹目录下进入Git Bash。进入之后输入:git init 即可。

完成以上操作后,该文件夹下会多出一个隐藏的.git文件夹,这个文件夹就叫Git的版本库。
4. Git 的工作流(工作区、暂存区、仓库)
Git的工作流主要分为工作区(工作目录)、暂存区(Index、Stage)、仓库(HEAD、分支)
工作区: 就是当前文件夹下,除了.git文件夹外,该目录下其他所有的文件
暂存区: 版本库.git文件夹内分为两部分内容,第一个是称为stage(或者叫index)的暂存区,我们对工作区内的文件进行修改后,需要执行git add <filename>将文件的修改添加到暂存区内,这是一个缓存区域,临时保存你的更改。
仓库:创建.git文件夹时,Git会为我们自动创建第一个分支master,以及指向master的一个指针叫HEAD,当然我们后面也可以再多创建一些分支,指针HEAD指向的这个分支我们就叫仓库。对于暂存区内的临时更改,使用git commit -m "备注"命令来将暂存区内所有的内容提交到分支中,最为最终更新的版本。

总而言之,git管理文件分为:工作区,版本库(暂存区stage, 仓库(分支)),常用的几个命令如下:
git add:把文件从工作区---->暂存区git commit:把文件从暂存区---->仓库git status:显示仓库当前的状态git log:显示从最近到最远的提交(commit)日志,其中包含commit id,可以使用git reset --hard HEAD^(返回上次修改版本) 或git reset --hard HEAD^(返回至指定修改版本)git diff:查看工作区和暂存区差异git diff --cached:查看暂存区和仓库差异git diff HEAD:查看工作区和仓库的差异git checkout:git add的反向命令,撤销工作区修改,即把暂存区最新版本转移到工作区。git checkout -- file中--很重要,没有--,就变成了“切换到另一个分支”的命令git reset HEAD:git commit的反向命令,就是把仓库最新版本转移到暂存区git rm:用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。完全删除一个文件需要三个步骤: 1)手动删除该文件;2)使用git rm <filename>在暂存区添加一个filename的修改;3)git commit -- <filename>将删除的修改提交到仓库中,在仓库中也永久的删除该文件。(备注:在执行第三步之前,误删的文件都可以从仓库中恢复)

5. 远程仓库(github)
1) 创建github账号
2) 创建SSH Key。打开Git Bash,输入ssh-keygen -t rsa -C "youremail@example.com"。需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。完成后,在C盘的用户主目录下会有一个.ssh文件夹,里面有id_rsa(私钥)和id_rsa.pub(公钥)两个文件。
3) 打开Github,进入设置,点击“SSH and GPG keys”,点击“New SSH key”,Title随便写,然后把id_rsa.pub内的内容粘贴至文本框内即可。

4) 在Github上创建一个空的Repository,创建时一个良好的习惯是写上名字、描述,并添加README、LICENSE文件,以及.gitignore文件,前几个在创建时都选上,.gitignore可以在本地仓库中自己编写,用于选择哪些文件不被上传。

5) 关于gitignore文件,可以先在本地仓库创建一个txt文件,内部每一行是当前目录下不想上传文件或文件夹的路径,如下所示。然后在命令行中,使用ren命令将这个txt文件直接命名为.gitignore文件:ren 新建文本文档.txt .gitignore

6) 在windows中创建一个空文件夹,进入内部创建一个名为code的txt文件,然后在空白的地方右键,点击Git Bash Here,进入之后依次输入以下命令
git init # 初始化本地仓库
git branch -M main # 更改master分支名为main,github社区避免黑人敏感词master
git git remote add origin https://github.com/Iron-LYK/learn_git.git # 远程连接github仓库,需要将`Iron-LYK`换成你自己的账户名。
# 添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。
git add code.txt # 提交至暂存区
git commit -m "first commit" # 提交至本地仓库(分支)
git pull --rebase origin main # 在push之前,先将远程仓库main分支文件拉取到本地main分支(让二者关联),否则直接push会报错
git push -u origin main # 将本地main分支文件(修改),推送至github上的main分支内。在第一次推送时,加上了-u 参数,
# Git不但会把本地的main分支内容推送的远程新的main分支,还会把本地的main分支和远程的main分支关联起来,在以后的推送或者拉取时就可以简化命令
常用命令:
git remote -v:查看目前已经远程连接的库
git remote rm origin:按名称(备注)删除远程连接
本文介绍Git版本控制系统的基础知识,包括Git的安装、版本库的创建、基本的工作流程以及如何使用远程仓库GitHub。此外还提供了实用的Git命令和教程推荐。
555

被折叠的 条评论
为什么被折叠?



