GIt之相关概念和基本操作理解

一、git基本概念

(1)基本概念入手

git的基本操作就不介绍了,直接基本概念入手吧
先附上一张图
在这里插入图片描述

  • 工作区:就是我们平时在本地打开的工作目录
  • 版本库:就是工作目录下有一个.git的 文件夹,这个文件夹里包含的内容就是git 的版本库
  • 暂存区:也叫索引,是存放在.git下的index文件

可以看到右图中版本库中,我还标记了两个文件

  • HEAD,这个文件里面是一个ref/【游标】指向了git当前所在的分支
  • object,为git 的对象库,里面存放的是创建的各种对象及其内容【有兴趣的可以打开看看】

(2)git命令解析

1. git add

添加文件到仓库

  1. 暂存区【.git/index】的目录树更新;
  2. 工作区中的新增/修改的内容被写到对象库【.git/object】中的一个新的对象中
  3. 这个新生成的对象的ID被记录在暂存区【.git/index】中

2. git commit

提交暂存区到本地仓库

  1. 暂存区【.git/index】的目录树写入版本库【.git的文件夹】中
  2. HEAD所指向的目录树就是提交时【git add】暂存区的目录树
  3. 此时远程git仓库不会做任何更新

3. git reset HEAD

回退版本

  1. 暂存区【.git/index】的目录树被重写,被HEAD所指向的目录树所替换
  2. 工作区不受影响

4. git rm --cached <file>

删除工作区/暂存区文件

  1. 从暂存区【.git/index】删除文件
  2. 工作区不作修改

5. git checkout ./ git checkout --<file>

  1. 使用暂存区的全部/指定文件替换工作区的文件
  2. 会清除工作区中未添加到暂存区的改动

6. git checkout HEAD / git checkout HEAD <file>

  1. 使用HEAD所指向的分支中的全部/部分文件来替换工作区和暂存区中的文件
  2. 清除工作区中未提交的改动
  3. 清楚暂存区中未提交的改动

二、git基本操作

(1)git pull

git pull === git fetch + git merge FETCH_HEAD
做了两个事情

  1. 从远程仓库获取代码
  2. 合并本地版本

命令格式如下:
git pull <远程主机名> <远程分支名>:<本地分支名>

例子:

将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
git pull origin master:brantest

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin master. 取回 origin/master 分支,再与本地的 brantest 分支合并。

(2)git fetch

从远程获取代码库
该命令执行完后需要执行 git merge将远程分支更新到你所在的分支。
例:

假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行:

git fetch [alias]
以上命令告诉 Git 去获取它有你没有的数据,然后你可以执行:

git merge [alias]/[branch]
以上命令将服务器上的任何更新合并到你的当前分支。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: IntelliJ IDEA 中 Git 的高级操作包括: 1. 分支管理:创建、合并、删除分支,以及在分支之间切换。 2. 解决冲突:当两个人同时对同一文件进行修改时,可能会出现冲突。在 IntelliJ IDEA 中,您可以通过内置的冲突解决工具来解决这些冲突。 3. 撤销提交:如果您提交了错误的代码,可以通过撤销提交来回滚更改。 4. 暂存文件:有时您可能希望对文件进行修改,但是又不希望立即提交。在这种情况下,您可以暂存文件,并在以后再提交。 5. 查看提交历史:您可以通过 IntelliJ IDEA 中的 Git 历史视图查看项目的提交历史,以了解项目的变更情况。 这些功能可以帮助您更高效地管理代码,并在团队协作中进行更有效的版本控制。 ### 回答2: Git是一种分布式版本控制系统,它是为了协助多人合作开发而设计的。在日常开发工作中,我们经常需要用到一些git的进阶操作来更高效地管理和协作项目。下面是一些常用的进阶操作: 1. 分支管理:Git允许我们创建各种分支来隔离不同的工作内容,提高并行开发效率。在创建分支时,可以使用命令`git branch <branch_name>`,并切换到该分支使用命令`git checkout <branch_name>`,也可以使用`git checkout -b <branch_name>`创建并切换到新分支。在分支开发完成后,可以使用`git merge <branch_name>`将分支合并到主分支。 2. 提交合并:有时候,我们会遇到需要将多个提交合并成一个的情况。可以使用交互式合并命令`git rebase -i <commit>`,来合并提交。在交互式合并的编辑界面中,可以选择要合并的提交,并将它们合并为一个新的提交。 3. 冲突解决:在多人协作开发中,可能会出现多个人同时修改同一份代码而产生的冲突。可以使用`git diff`命令查看冲突内容,并手动解决冲突。解决冲突后,使用`git add`命令将解决后的文件加入到暂存区,再使用`git commit`命令提交修改。 4. Cherry-pick:有时候我们只需要选择某个分支上的某几个提交进行合并,可以使用`git cherry-pick <commit>`命令选择性地合并提交。该命令会将指定的提交应用到当前分支上。 5. 修改历史记录:有时候我们需要修改历史提交的相关信息,例如作者信息、提交信息等。可以使用`git rebase -i <commit>`命令进入交互式编辑模式,然后修改相关提交的信息。 以上只是git的一些进阶操作,能更好地管理和协作开发项目。通过学习和掌握这些操作,我们可以更高效地开展工作并提高开发效率。 ### 回答3: 在使用Git进行进阶操作时,我们可以考虑以下几个方面: 1. 分支管理:Git的分支系统非常强大,可以方便地进行并行开发和版本控制。我们可以创建新的分支,在不影响主分支的情况下进行实验或者开发新的功能。同时,还可以合并分支,将新的修改合并到主分支中。 2. 标签管理:标签是Git中的一个重要概念,用于为特定的提交打上标记。我们可以创建标签来记录重要的版本发布,或者用来标记代码的里程碑。通过标签,我们可以方便地找到指定的提交并进行回滚操作。 3. 冲突解决:在多人协同开发时,可能会出现代码冲突的情况。Git提供了强大的冲突解决工具,可以帮助我们合并不同分支上的代码修改。通过合理地使用Git提供的命令和工具,我们可以解决冲突并保留对代码修改的追踪。 4. 子模块管理:有时候我们可能需要将其他项目作为Git项目的子模块进行引用。Git允许我们将外部项目作为子模块添加到当前项目中,并保持独立的版本控制和更新。这在多个项目之间共享代码或者依赖关系的情况下非常有用。 5. 深入了解Git命令:除了基本的add、commit、push等常用命令外,还有许多高级命令可以提升我们对Git理解和使用能力。例如,我们可以使用rebase命令进行分支合并,使用cherry-pick命令选择性地复制某些提交,使用reflog命令查看Git命令的历史记录等等。 总之,通过掌握分支管理、标签管理、冲突解决、子模块管理和深入了解Git命令等进阶操作,我们可以更好地利用Git进行版本控制和团队协作,提高开发效率和代码质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值