Git你必须知道的知识

 一:使用Git的原因

        我们在写版本的时候,可能会谢谢改改,可能要回到之前的文件,修改之前的文件,因此总是要保持很多个文件,且书写文件名也很麻烦。git可以有一个仓库,版本库,可以保存这些文件。且很好找到,且文件容易丢失,git能解决这些缺点。

二.查看版本号

git -v命令可以查看当前git版本号。

我们进行的git操作需要在Git Bash下的git终端。

三.配置用户名和邮箱

以上命令在git终端,每次提交版本的时候就会记录身份。当推送到远程仓库时,可知道是谁提交的。当写了一次这个命令,之后生成的版本都是这个。

git config --list 获取配置,包括用户名和邮箱。再写一次上面的用户名和信息可以改变。

四:Git仓库

在git终端下 git init 能在前面的文件夹下创建.git 文件夹,该文件夹中保存着版本库和暂存区。,各个版本,以。

路径 A git init 会在A路径下生成.git文件夹。

路径A git init B 会在A/B文件夹下生成.git 文件夹。

五:git的三个区域

工作区 :开发的文件夹

暂存区:仓库内暂时存储的文件

版本库:暂存区的快照

暂存区在.git/index下。不是文件夹噢。

六.相关命令

1)git add 文件名/路径/. 工作区-》暂存区

路径A git add 文件名/路径名 会将路径下的文件名/路径下的所有的文件,放到A下的。git的暂存区。git add . 暂存所有文件,在A路径下的。

2)git commit -m "注释说明”   

暂存区-》版本库  生成版本,必须提交的暂存区与之前的提交的前一个暂存区不同,才能在分支上生成版本号。才有新的版本记录,即使第一次提交和第三次提交一样,也会生出新的版本号,和分支。

以上可以将暂存区所有的文件作为一个版本,且有以哈希生成的唯一的文件名的版本,保存之后的暂存区不会变,还是原来的文件。


 

3)输入clean回车是清空终端。和cls一个意思。

6)git restore 目标文件名(后缀噢)

可以将暂存区当中改文件内容变成工作区的文件状态。

7)git rm --cached 文件名

从暂存区中移出该文件,不会影响其他区的。如果没有暂存区,只有两个,则想这种移出,会影响版本的内容。这些文件名都必须看作是当前根目录写完整的,q/a.html要不找不到。

8)查看版本库内的记录 git log --oneline

        该命令能查看该分支下Header指针在该分支时所有提交的版本号,可以一直往前找,会包含主枝的版本号,也可包括分支的。

9)回退版本 git reset --soft 版本号

回退时,soft 暂存区和工作区的内容不变,没有删除版本号,且HEADER指针指向指定的。

10)git reflog

11)忽略文件的跟踪

git add . 会将很多可以之后版本库内拿到再生成的文件无需跟踪,传入远程仓库也麻烦。

可以在以下文件下写文件夹的名,或者后缀可以 不在放入暂存区。

七:分支

1)创建分支,可以不同分支实现不同功能,更易调节。

主分支是master。创建分支时,是在此时分支Header指针指向的版本有分支。每次切换分支时,暂存区和版本区是切走之前的工作区和暂存区。创建分支名重复无法创建。

2)分支的合并与删除

分支的删除,会将不是公共部分的版本删除。  git branch -d 分支名

分支的合并第一种情况

合并到master分支上,master分支是没有生成新的版本的。

第一种情况,历史记录是c1->c2->c3->c4->c5->c6,是在c3暂存区的基础上提交c4的暂存区文件。

分支合并第二种情况

这里其实和上一个也是一样的,都是变成一个分支,提交的历史记录是在原本暂存区的基础上进行操作提交,以及提交不看是哪个分支只看那个分支的版本号先提交。分支合并之后的分支的工作区暂存区都是版本库的版本的文件。

第三种:即使分支A与分支B不是,A从B上创建而来,依旧可以合并,以及如果是将A合并到B上,A的版本号其实不会变,依旧指向原本的版本,他的版本历史也不会变。但是B分支都是看A,B上提交的时间开始提交版本。

合并会出现这个提示

# 请输入一个提交消息来解释为什么合并是必要的,  
# 特别是当它合并一个更新的上游到一个主题分支。  
#   
# 以“#”开头的行将被忽略,空消息将中止  
# 提交。  

3)合并冲突

        合并如果分支A和分支B上会对同一个文件(原本一样的文件)的同一属性都进行不同的修改,将不会根据时间来改,会提示,叫你修改,两个修改的文件内的不能同时存在的。

疑问:分支A与分支B冲突,我们解决了冲突·,会出现让你留下那几个,但是你做出裁决之前,版本库内只有原本的版本,但是一旦修改之后提交。会将合并的版本一块放入。且即使没进行合并,只有原本的版本库,但是工作区是已经进行了合并之后的。则一开始进行这个毛肚的行为都是现在决定的。

9)将第三步的仓库名取消,git remote remove 仓库别名

10)查看所有仓库别名的推送和接收

git remote -v

八.常见命令

九.远程仓库

1)仓库的推送

。第四步才是传送Git仓库。推送一开始需要-u,进行连接,已经连接下一次再推送九可以不用了。将第三步的仓库名取消,git remote remove 仓库别名 ,-u写了也不会连接,只有第一次,且第一次之后,-u也不会出现登入账户名密码了。是将分支的版本历史记录传到远程仓库内。

 这个推送只有当仓库内的文件又,本地改了才行,但是如果仓库已经更新,但是本地没有,本地改了其他地方,这个是无法推送的,git pull --rebase origin master这个可以是先将仓库的更新合并到本地版本库,再上传,但是自己的会是更新之后的工作区。

要再次登录账户名密码做法:控制面板-》windows凭据-》普通凭据-》删除原本的账户密码。

2)仓库的克隆

将远程仓库的拷贝到本地

会映射到暂存区和版本区。再各个分支,

3)拉取代码

拉取代码和推送一样需要第三步连接,然后才能拉取代码,但是克隆可以直接进行连接然后获取。

克隆可以没有git仓库,但是拉取需要,且拉取是某一个分支,克隆是整个工作区。

10.vscode的简易操作

在vscode工具中,会出现蓝色的标记,点进去,内部文件是前一次生成版本到现在改变的文件。

push推送是此时的版本库推送,Sync...只推送该文件。拉取是所有的都拉取过来。放入版本库。克隆和拉去都会同时改变暂存区和工作区。

七:Git文件状态

第一列是对于工作区的文件对于暂存区而言,第二组是对于暂存区而言,改动的文件。

  • 33
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值