工具篇|【Git】入门到实践备忘篇

(本文效果:小白入门到实践备忘)

目录

1.安装git(windows 为例)

2.创建版本库

3.版本穿越

4.使用 GitHub 远程仓库

5.分支管理

6.多人协作

7.标签

8.参与开源 GitHub

9.提交时自定义忽略文件


1.安装git(windows 为例)

<1> Windows 版的 Git,从  https://git-for-windows.github.io下载。安装完成后,在开始菜单里找到 “Git”->“Git Bash”,说明 Git 安装成功。
<2> 安装完设置全局参数。

git config --global user.name "Your Name"
git config --global user.email"email@example.com"

2.创建版本库

第一步,自己合适的文件夹下创建文件夹作文仓库,如 gitdemo [在 gitdemo 目录下打开 Git Bash进行接下来的命令操作。]
第二步,通过命令 Git init 把这个目录变成 Git 可以管理的仓库。
第三步,添加文件到仓库。

添加文件到 Git 仓库,分两步:首先保证文件已经放到上一步创建的仓库中。
第一步,使用命令 git add <filename>,可以一次添加多个文件进去。
第二步,使用命令 git commit -m "说明性文字",完成。

3.版本穿越

1 随时查看状态

要随时掌握工作区的状态,使用:git status 命令。
如果 git status 告诉你有文件被修改过,用 git diff <filename> 可以查看具体文本的修改内容。

2 版本回退

HEAD 指向的版本就是当前版本,因此,Git 允许我们在版本的历史之间穿梭,使用命令 git reset --hard <commit_id>
穿梭前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。

3 工作区,版本库,暂存区,分支概念

上面举例提到的创建的文件目录 gitdemo 视为工作区,工作区中有一个隐藏目录 .git,这个是 Git的版本库
Git 的版本库里存了很多东西,其中最重要的就是称为 stage(或者叫 index )的暂存区,还有 Git为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。

其中第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。
两步缺一不可,否则不能把工作区的文件做改动后添加到版本库。

4 不同场景下的撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- file
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参靠上面提到的“版本回退”小节,不过前提是没有推送到远程库。

5 删除文件

一般情况下,直接手动在文件目录中把的文件删了(删除的是工作区的文件),或者用 rm <filename> 命令删除文件。
接下来,你有两个选择:
<1>确实要从版本库中删除该文件:使用如下两个命令git rm删掉,并且git commit提交。
eg:git rm test.txt,再提交eg:git commit -m "remove test.txt"
<2>另一种情况是删错了,想恢复文件,因为版本库里还存在提交的文件,所以可以很轻松地把误删的文件恢复到最新版本:
eg:git checkout -- test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

4.使用 GitHub 远程仓库

1 注册GitHub

自行注册 GitHub 账号。由于的本地 Git 仓库和远程 GitHub 仓库之间的传输是通过 SSH 加密的,所以,需要一点设置:
<1>创建 SSH Key。

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有 id_rsa 和 id_rsa.pub 这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开 Git Bash,创建 SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
注:你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,无需设置密码。
顺利的话,可以在用户主目录里找到 .ssh 目录,里面有 id_rsa 和 id_rsa.pub 两个文件,这两个就是 SSH Key 的秘钥对,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥,可以放心地告诉任何人。

<2>添加 SSH Key。
登陆 GitHub,打开 “Account settings”,“SSH Keys” 页面:
然后,点 “Add SSH Key”,填上任意 Title,在 Key 文本框里粘贴 id_rsa.pub 文件的内容。
点 “Add Key”,你就应该看到已经添加的 Key。
此外,GitHub 允许你添加多个 Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的 Key 都添加到 GitHub,就可以在每台电脑上往 GitHub 推送了。GitHub 上免费托管的 Git 仓库,其托管内容是公开的。

2 添加远程仓库

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

<1>创建。

首先,登陆 GitHub,然后,在右上角找到 “Create a new repository” 按钮,创建一个新的仓库。在 Repository name 填入 gitdemo [即远程仓库的名字,应该叫项目名更好,往下阅读可以看到远程仓库名默认为 origin ],其他保持默认设置,点击 “Create repository” 按钮,就成功地创建了一个新的 Git 仓库。

<2>关联。

在本地仓库[即上面提到的本地工作区目录 gitdemo 下] gitdemo 下执行下面命令:git remote add origin git@github.com:bilahepan/gitdemo.git  [注:bilahepan 换做自己的 GitHub 账户名,gitdemo 是远程仓库名]。

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

<3>推送到远程仓库。

推送使用如下命令。

git push -u origin master

我们第一次推送 master 分支时,加上了 -u 参数,Git 不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令,使用命令 git push origin master 推送最新修改。
注:第一次使用 Git 的 clone 或者 push 命令连接 GitHub 时,会得到一个警告。看提示输入 yes 即可,只是验证作用。

<4>从远程仓库克隆到本地。
在你本地,选择一个文件目录下,打开 Git Bash。执行下面命令。
git clone git@github.com:bilahepan/gitdemo.git
[注: bilahepan 为 github 用户名,gitdemo 为远程仓库 origin 中你要克隆到本地的项目名。]
GitHub 给出的地址不止一个,还可以用 https://github.com/bilahepan/gitdemo.git 这样的地址。实际上,Git 支持多种协议,默认的 git:// 使用 ssh,但也可以使用 https 等其他协议。

5.分支管理

[不了解 git 分支概念的,请自行搜索。]

1 分支操作命令

Git 鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>

2 解决分支合并冲突

git log --graph --pretty=oneline --abbrev-commit  命令可以看到分支合并图。

当 Git 无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
[比如把 A 分支库中的文件向 B 分支库合并,A,B 分支库中都有一个文件名相同的文件 readme.txt,且二者的文本内容不同。合并时就会提示,文件有冲突。 Git 尝试合并后,用 <<<<<<<,=======,>>>>>>> 标记出不同分支的内容。一般自行修改文件,根据情况解决冲突后,再合并。]

3 Bug分支

修复 bug 时,我们会通过创建新的 bug 分支进行修复,然后合并,最后删除 bug 分支;
当手头工作没有完成时,先把工作现场 git stash 一下,隐藏工作现场。然后去修复 bug,修复后,再 git stash pop,回到工作现场。

4 Feature分支

添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个 feature 分支,在上面开发,完成后,合并,最后,删除该 feature 分支。思路和 Bug 分支管理一样。
如果要丢弃一个没有被合并过的分支,可以通过 git branch -D <name> 强行删除。

6.多人协作

多人协作的工作模式通常是这样:
首先,可以试图用 git push origin branch-name 推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用 git pull 试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用 git push origin branch-name 推送就能成功!

如果 git pull 提示 “no tracking information”,则说明本地分支和远程分支的链接关系没有创建。

在本地创建和远程分支对应的分支,使用 git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用 git branch --set-upstream branch-name origin/branch-name

这就是多人协作的工作模式,一旦熟悉了,就非常简单。
查看远程库信息,使用 git remote -v

7.标签

1 创建标签

命令 git tag <name> 用于新建一个标签,默认为 HEAD,也可以指定一个 commit id;eg: git tag v0.96224937
git tag -a <tagname> -m "blablabla..." 可以指定标签信息;eg:git tag -a v0.1 -m"version 0.1 released"
命令 git tag 可以查看所有标签。

 2 删除标签

命令 git push origin <tagname> 可以推送一个本地标签;
命令 git push origin --tags 可以推送全部未推送过的本地标签;
命令 git tag -d <tagname> 可以删除一个本地标签;[删除远程标签时,先删除本地]
命令 git push origin :refs/tags/<tagname> 可以删除一个远程标签。

8.参与开源 GitHub

在 GitHub 上,可以任意 Fork 开源仓库;
自己拥有 Fork 后的仓库的读写权限;
可以推送 pull request 给官方仓库来贡献代码。

9.提交时自定义忽略文件

忽略某些文件时,需要编写 .gitignore;
.gitignore 文件本身要放到版本库里,并且可以对 .gitignore 做版本管理!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不甩锅的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值