千家信息网

Git原理和常用命令有哪些

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍"Git原理和常用命令有哪些",在日常操作中,相信很多人在Git原理和常用命令有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Git原理和常用命令有
千家信息网最后更新 2024年11月23日Git原理和常用命令有哪些

这篇文章主要介绍"Git原理和常用命令有哪些",在日常操作中,相信很多人在Git原理和常用命令有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Git原理和常用命令有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、 前言

Git是什么

开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。最开始为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

从一般开发者的角度来看,git有以下功能:

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

二、Git 原理:

1. 工作区(Working Directory)

就是你在电脑里能看到的目录,开发时候所在目录或文件夹。当我们新建目录或者文件夹时的内容都放在工作区。

2. 版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。大致结构如下:

3. 从工作区如何到暂存区:

我们把文件往Git版本库里添加的时候,是分两步执行的:

  • 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区(被版本库索引);

  • 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

  • 因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

4. 常见的工作场景如下:

三、 常用命令

  • 远程相关:

git remote add origin git://xxx 关联远程分支,其中origin 为远程仓库的别名

git remote remove origin 解除分支关联

  • push相关操作:

git push origin <本地分支>:<远程分支>

git push -u origin master // 默认情况下这条语句等价于提交本地的master仓库到远程仓库,并作为远程的master分支

git push origin test:test // 提交本地test分支作为远程的test分支

git push origin test:master // 提交本地test分支作为远程的master分支

  • pull相关命令

git pull origin <远程分支>:<本地分支>

git pull origin next:master //将远程next分支与本地master分支合并

git pull origin next //将远程next分支与当前所在分支合并

git pull origin //当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名

  • 其他:

git checkout -b dev //创建并切换到dev分支

git merge dev //合并dev分支到当前分支

git checkout dev //切换到dev分支

git branch dev //创建dev 分支

  • 常见场景:

1. 将此次修改提交到bugfix分支后,也需要提交到dev分支。则切换到dev分支执行以下命令:

git cherry-pick commitid // 将某个分支的提交再次在当前分支提交。也可以在同一分支执行

git cherry-pick commitid1 .. commitid1 // 将某个分支的commitid1 与commitid1之间的提交再次在当前分支提交。

2. 在当前分支A修改代码到一半,又需要立马切到另一个分支B解决棘手问题,又不想先提交分支A的代码。如果强制切到B分支,则A分支的修改会被丢弃。使用stash可以将当前修改缓存起来:

git stash save "xxx" //给当前缓存内容取名"xxx",便于记录版本

注意:默认将暂存和未暂存(被索引)的文件缓存起来。

git stash list // 查看所有缓存内容

git stash pop/apply //pop将缓存栈顶弹出并应用到当前分支,apply将缓存栈顶应用到当前分支,不弹出

git stash pop/apply stash@103 //应用指定缓存内容

git stash clear // 清除所有缓存

git stash drop stash@104 //删除指定缓存,默认栈顶

四、IntelligJ idea 使用Git

五、Eclipse使用Git

https://my.oschina.net/woniuyi/blog/3103613

到此,关于"Git原理和常用命令有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0