Git使用相关说明

目录

一、Git安装

1、下载

2、安装

3、设置

二、Git Bash常用命令(重点掌握)

1、获取git仓库(git init、git clone)

2、管理文件:查看(git status)、追踪(git add)、提交(git commit)、删除(git rm)、重命名(git mv)

(1)git status:查看当前工作目录所有文件状态

(2)git add 文件名:将工作区文件添加到暂存区,或将暂存已追踪文件修改

(3)git commit -m "提交说明" 文件名:将暂存区内容提交到本地库

(4)git rm -f 文件名:强制删除已暂存文件,暂存区和工作区同时删除

(5)git mv 文件名 新文件名:追踪文件重命名

3、查看提交日志(git reflog)

(1)git log:详细日志

(2)git log --pretty=oneline:单行展示

(3)git reflog:最常用的查看命令

4、版本回滚(git reset)

(1)git reset --hard 版本索引:硬回滚,工作区、暂存区随本地库回滚到指定版本

(2)git reset --mixed 版本索引:混合回滚,暂存区随本地库回滚到指定版本,工作区不变

(3)git reset --soft 版本索引:软回滚,只回滚本地库版本,暂存区和工作区不变

5、追踪文件对比(git diff)

(1)git diff 文件名:比较工作区文件与暂存区差别

(2)git diff:比较工作区所有文件与暂存区文件差别

6、分支命令(git branch) 

(1)git branch -v:查看所有分支

(2)git branch 分支名:创建新分支

(3)git checkout 分支名:切换到指定分支

(4)git checkout -b 分支名:创建并切换到新分支

(5)git branch -d 分支名:删除分支 

(6)git merge 分支名:合并指定分支到当前分支

(7)代码冲突导致分支合并中止(保持合并状态)

8、与GitHub远程仓库交互

(1)git remote -v:查看本地库保存的远程库

(2)git remote add 别名 url:添加远程仓库并取别名

(3)git remote rm 别名:删除添加的远程仓库

(4)git clone 远程仓库url:克隆远程仓库至本地

(5)git push 远程库别名 远程分支名:向远程分支推送本地库内容

(6)git pull 远程库别名 远程分支名:拉取远程库并更新至本地库及工作区 

三、操作示例

1、将文件夹初始化为Git库:git init

2、查看git库状态:git status

3、将文件添加到暂存区:git add 文件名.后缀 

4、比较工作区、暂存区文件内容差别:git diff 文件名.后缀

4.1 比较工作区test.txt与暂存区差别

4.2 修改test.txt文件内容并保存

4.3 比较工作区test.txt与暂存区差别

5、将文件从暂存区删除

(1)git rm --cached 文件名:将文件从暂存区删除,但在工作区保留

6、本地库文件删除与找回

(1)先将工作区文件test2.txt提交至本地库

(2)删除本地库文件test2.txt

(3)找回本地库文件test2.txt

7、暂存区文件删除与找回

8、模拟分支合并冲突


一、Git安装

1、下载

Git官网:https://git-scm.com/

官网下载比较慢的可以使用腾讯管家的软件管理下载,跟官网版本是同步的,没什么差别

2、安装

点击exe执行安装,只有两处地方需要修改:

安装目录和PATH环境变量设置,其他都默认即可

3、设置

安装完成后在桌面空白处右键,多了两个新的Git选项

点击Git Bash Here打开命令行窗口,输入:git -- version查看git版本

在Git命令窗口上右键进入选项设置

 

字符集设置为UTF-8 

二、Git Bash常用命令(重点掌握)

官方中文文档地址:https://www.git-scm.com/book/zh/v2

Git基本概念:工作区(工作目录)、暂存区、本地库(Git仓库)

说明:

Git库根目录(即目录c/MyGitResp)下的文件都在工作区,

只有工作区内的文件和内容才能添加到暂存区,

只有暂存区内的文件和内容才能提交到本地库。

1、获取git仓库(git init、git clone)

官方说明:

https://www.git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%BA%93

git init:初始化本地目录为git仓库

git clone url:克隆远程仓库

2、管理文件:查看(git status)、追踪(git add)、提交(git commit)、删除(git rm)、重命名(git mv)

官方说明:

https://www.git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93

(1)git status:查看当前工作目录所有文件状态

空仓库状态

有文件状态 

 

a、Changes to be committed:暂存区还没有提交到本地库的文件

b、Changes not staged for commit:已追踪文件内容改变但还没有暂存修改

c、Untracked files:未追踪的新文件,工作区文件还没有添加到暂存区

(2)git add 文件名:将工作区文件添加到暂存区,或将暂存已追踪文件修改

git diff 文件名:列出工作区文件与暂存区差别

(3)git commit -m "提交说明" 文件名:将暂存区内容提交到本地库

-m 添加提交信息

*git commit -a:自动将所有追踪文件的修改保存到暂存区然后提交到本地库

(4)git rm -f 文件名:强制删除已暂存文件,暂存区和工作区同时删除

git rm --cached 文件名:将文件从暂存区删除,但在工作区保留

(5)git mv 文件名 新文件名:追踪文件重命名

注意:暂存文件才能重命名,因为没有执行过git add的文件还没被git管理

3、查看提交日志(git reflog)

官方说明:

https://www.git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2

(1)git log:详细日志

(2)git log --pretty=oneline:单行展示

(3)git reflog:最常用的查看命令

第一列是版本索引,头指针HEAD指向本地库最新版本,版本回滚时需要用到版本索引

4、版本回滚(git reset)

(1)git reset --hard 版本索引:硬回滚,工作区、暂存区随本地库回滚到指定版本

执行回滚:回滚至HEAD版本,即将撤销上次提交后工作区和暂存区保存的所有新操作

(2)git reset --mixed 版本索引:混合回滚,暂存区随本地库回滚到指定版本,工作区不变

回滚前:test.txt修改已保存至暂存区,但未提交至本地库

执行混合回滚

回滚后:test.txt的修改暂存区已撤销,工作区仍保存修改

(3)git reset --soft 版本索引:软回滚,只回滚本地库版本,暂存区和工作区不变

5、追踪文件对比(git diff)

修改前工作区、暂存区状态(clean表示,工作区所有内容都已暂存,暂存区所有内容都已提交至本地库)

(1)git diff 文件名:比较工作区文件与暂存区差别

空白文件test.txt新增内容:aaa 

 

说明:-0,0 +1表示工作区文件与暂存区相比,减少了0行0列新增了1行

将修改添加至暂存区后,test.txt文件工作区内容与暂存区相同

在test.txt文件后追加内容:bbb 

再次比较test.txt文件工作区内容与暂存区差别

说明:git按行管理内容,修改行时先删后增

-1,+1表示工作区与暂存区相比减少了一行新增了一行 

-aaa表示减少的内容,+aaabbb表示新增的内容

(2)git diff:比较工作区所有文件与暂存区文件差别

git diff 版本索引 文件名:比较暂存区单个文件与本地库指定版本差别

暂存区文件提交到本地库之后,本地库文件与暂存区文件无差别

 

修改工作区test.txt保存后添加修改至暂存区 

再次比较暂存区test.txt文件与本地库当前版本差别 

git diff 版本索引:,比较暂存区所有文件与本地库指定版本差别

6、分支命令(git branch) 

官方说明:https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6

(1)git branch -v:查看所有分支

(2)git branch 分支名:创建新分支

(3)git checkout 分支名:切换到指定分支

(4)git checkout -b 分支名:创建并切换到新分支

(5)git branch -d 分支名:删除分支 

(6)git merge 分支名:合并指定分支到当前分支

 

(7)代码冲突导致分支合并中止(保持合并状态)

在master分支,合并branch_b分支时出现冲突,Git停留在合并状态

解决思路:修改工作区冲突文件,暂存修改后的冲突文件,git commit -m "说明" 结束合并

  • 找到工作区冲突文件,编辑冲突内容并保存

  •  git add test.txt:暂存修改后的冲突文件

  • git commit -m "解决冲突":提交暂存结果到本地库,合并结束

注意:解决冲突commit时后面不能跟文件名,否则将报错

解决冲突后查看master分支状态

切换到branch_b分支查看分支状态

在分支branch_b上,test.txt文件内容没有变化

 

8、与GitHub远程仓库交互

 官方说明:https://www.git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF

(1)git remote -v:查看本地库保存的远程库

(2)git remote add 别名 url:添加远程仓库并取别名

(3)git remote rm 别名:删除添加的远程仓库

(4)git clone 远程仓库url:克隆远程仓库至本地

  • 在C盘空白处打开Git命令行窗口

  • 克隆远程仓库至本地,完成后关闭窗口

说明:clone命令做了三件事—自动创建本地库并初始化、自动将远程库拉取到本地库、自动为远程库创建别名

  • 进入自动创建的本地库并重新打开git命令行窗口

  • 可以看到git自动为远程仓库创建了别名

(5)git push 远程库别名 远程分支名:向远程分支推送本地库内容

  • 在GitHub新建远程仓库

  • 拷贝远程仓库url 

  • 添加远程仓库到本地并取别名

  • 首次提交远程库将弹出GitHub登录窗口,输入账号密码登录即可

(账号密码将被计算机永久保存,查看或清除->控制面板(查看方式改为大图标)->凭据管理器->普通凭据)

  • 查看远程库,可以看到本地库文件已提交至远程库 

 

(6)git pull 远程库别名 远程分支名:拉取远程库并更新至本地库及工作区 

相当于以下两条命令:

git fetch 远程库别名 远程分支名

git merge 远程库别名/远程分支名

三、操作示例

1、将文件夹初始化为Git库:git init

进入空文件夹MyGitResp,右键打开Git Bash窗口,输入命令:git init

 

通过命令行查看生成文件,ll命令加 -all显示隐藏文件

2、查看git库状态:git status

3、将文件添加到暂存区:git add 文件名.后缀 

在工作区新建空白文件test.txt

Git命令行窗口查看

将test.txt添加到暂存区并查看git库状态变化

 

4、比较工作区、暂存区文件内容差别:git diff 文件名.后缀

4.1 比较工作区test.txt与暂存区差别

说明:目前工作区test.txt文件与暂存区无差别

4.2 修改test.txt文件内容并保存

4.3 比较工作区test.txt与暂存区差别

说明:-0,0 +1 表示减少了0行0列,增加了1行

+aaa 表示增加了内容aaa

5、将文件从暂存区删除

(1)git rm --cached 文件名:将文件从暂存区删除,但在工作区保留

示例:

rm.txt文件已暂存

将rm.txt文件从暂存区删除

rm.txt在暂存区已不存在, 但工作区还存在

6、本地库文件删除与找回

(1)先将工作区文件test2.txt提交至本地库

(2)删除本地库文件test2.txt

思路:先从工作区删除,然后将操作添加到暂存区,最后将暂存操作提交至本地库

(3)找回本地库文件test2.txt

思路:本地库硬回滚至删除前版本,本地库、暂存区、工作区同时恢复

查看工作区当前文件

查看提交记录,复制上一版本索引(选中即自动复制)

 执行硬回滚操作

 工作区文件已恢复

查看提交历史,记录了版本指针HEAD的移动记录

7、暂存区文件删除与找回

将工作区删除操作保存至暂存区后,想要撤销删除操作,直接同步本地库当前版本即可

8、模拟分支合并冲突

  • 工作区、暂存区、本地库同步之后,创建并切换至新分支

  

  • 在新分支branch_b修改test.txt文件并提交至本地库

  • 切换回主分支master同样修改test.txt文件并提交至本地库

  • 合并branch_b分支时,test.txt文件冲突,合并中止(保持合并状态)

  • 解决冲突可参考前述步骤
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值