如何使用 Git

win快速截图 win+shift+s
.常用git命令
在这里插入图片描述
现在环境变量已经配置好了

在这里插入图片描述

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

git使用

1.登陆用户名

1.我们打开git的界面,输入

git --version查看版本

git config user.name 查看用户名

git config user.email 查看邮箱

2.修改用户名和邮箱地址

Git config --global user.name "username"

Git config --global user.email "email"

2.创建git本地仓库,并且添加一个文件

mkdir testgit 

cd testgit

git init

Touch test.txt

git add test.txt

git commit -m"补充说明"

好了,现在查看一下仓库现在的状况

git status 查询仓库是否被修改了

git diff 查询仓库被修改的内容

3.版本回退

`commit f715a631f0d2d054cc413332987fff3c9ea14e23 (**HEAD ->** **master**)

Author: xxx <xxxxx1073@qq.com>

Date:  Sat Mar 6 13:44:18 2021 +0800

  add java

commit 897a9120356619a1c6dc3296294487090e82f72f

Author: xxx <xxxxx1073@qq.com>

Date:  Sat Mar 6 13:40:34 2021 +0800

  submit a changed submit

commit be5034a07f72d1453fa9e237a6107f598bfb64cb

Author: xxx <xxxxx1073@qq.com>

Date:  Sat Mar 6 13:16:01 2021 +0800

  pioneerrr submit a summary about git`

我们设定一个文件,它修改了三次(每一次修改都commit),

1.git log 查看版本数量

我们可以看到有三个版本

2.使用git reset 回退某一个版本

注意:HEAD指向的是当前的版本

'git reset --hard HEAD1(回退一个版本一个,如果数字太大了,HEAD-num) 回到过去

3.我们想进入特定的某一个版本,怎么做?

git的文件经过每一次修改和提交过后都会有一个ID, 我们只需要查找你要的那个版本的id即可

git reflog 记录了你的每一次命令,用它来查一下ID回到未来吧

使用命令 git reset --hard commit_ID

注意:ID只要前几位就可以啦

4.工作区和暂存区

1 创建一个文件夹,git init初始化一个工作区。

2 创建工作区后,git会自动创建一个.git版本库,不过是 隐藏的

工作区是我们创建的文件

而版本库里面有stage暂存区和master分支,

git add文件就是被送到暂存区

git commit 文件就被送到了master分支,并且HEAD版本指针指向了master

注意:每commit一次,HEAD指针就指向那一个文件

5.修改

1 管理修改:

修改是啥:你添加或删除了一行,改了字符或创建文件

咋管: 所有的修改必须add到stage,然后 git commit一次性提交,不add就不算啦。

我们做一个错误的提交
第一次git add test.txt
git commit test.txt
我们第二次,修改了一下文件。git commit text.txt
不放暂存区了,就是那么任性。

结果git commit 只提交了在暂存区的 第一次的文件

注意:可以通过git diff HEAD – file 查看工作区和版本库里面最新版本的区别

小结:第一次修改 -> git add -> 第二次修改 -> git add -> git commit

2.撤销修改

这里有三种情况

小结

又到了小结时间。

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset – commit_ID,不过前提是没有推送到远程库。

3.删除修改

我们假定现在有test.txt文件在工作区,并且已经添加到暂存区

场景1:我们打算删除,要把暂存区的也删除

git rm test.txt 删除

git commit      提交

场景2:我们已经添加到暂存区,但是误删了工作区的文件

git checkout -- test.txt
注意:
git checkout 其实是用版本库的版本替换工作区的版本,无论修改还是删除都可以还原。
如果文件从来没有被添加到版本库就被删除,是无法恢复的。

6.添加远程库

1.添加ssh秘钥

https://blog.csdn.net/wxrNine_/article/details/90756514?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

这里引用一下博客

2.从GitHub上克隆文件

git clone git@github.com:Github用户名/文件名.git

小结:git clone 网址也可以克隆,但是https协议可比ssh协议慢多了

7.分支管理

1.分支相关的命令

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

2.对于分支的理解

在这里插入图片描述

现在我们来实践一下

首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。

然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:

Creating a new branch is quick.

然后提交:

$ git add readme.txt 
$ git commit -m "branch test"
[dev b17d20e] branch test
 1 file changed, 1 insertion(+)

现在,dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch 'master'

切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变:

git-br-on-master

现在,我们把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

当然,也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was b17d20e).

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

总结:

1.HEAD是指向当前分支,master主分支是指向提交的。

2.我们可以从次分支切换到master主分支,

git switch branchname  #切换分支
git merage branchname  #将某分支回到当前分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值