Git总结

Git总结一 Git 简介 Git 是一个开源的分布式版本控制系统 可以有效 高速的处理从很小到非常大的项目版本管理 nbsp Git 是 LinusTorvald 林纳斯 托瓦兹 Linux 之父 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 nbsp 1 Git 与 SVN 的区别 SVN 是一个开放源代码的集中式版本控制系统 其优点有 易于管理 安全性更高 代码一致性非常高 集中式

一:Git简介

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 

Git 是 Linus Torvalds 林纳斯·托瓦兹(Linux之父) 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

 

1,Git与SVN的区别

SVN是一个开放源代码的集中式版本控制系统。其优点有:易于管理,安全性更高,代码一致性非常高。

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。缺点:无法分布式开发,工作时必须联网,速度慢。

Git 优点:可以分布式开发,可以离线工作,速度快、灵活。

 

2,Git 与 Github 和 Gitlab 的关系

Github:使用Git做版本控制的代码托管平台。

Gitlab:是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

 

二:Git 工作区、暂存区与版本库

Git把管理的文件分为了两个区域四个状态。

Git总结

Git总结

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本可以写成HEAD~100。

 

三:Git分支及管理策略

Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。

Git总结

Git创建一个分支很快,因为除了增加一个dev指针,改变HEAD的指向,工作区的文件都没有任何变化!

Git总结

在dev分支上提交—>合并分支—>删除dev分支图示

Git总结

Git总结        Git总结

 

Git管理策略:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

每个开发者创建了属于自己的分支,在自己的分支上写代码,写完后将自己的分支合并到dev分支(或dev-review分支)上;

开发新功能时,会创建新的feature分支,然后在该feature分支上工作;

修复bug时,会通过创建新的bug分支进行修复,然后合并,最后删除。

Git总结

 

四:Git配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

第一次提交文件前需要配置个人的用户名称和电子邮件地址:

git config --global user.name "hua" git config --global user.email @.com

git config –list  查看已有的配置信息

 

五:Git bash常用命令

git rm

        从版本库中删除该文件

git diff

 查看文件修改情况

git checkout

  放弃对指定文件的修改








git checkout -b

   创建并切换分支

git merge

        将指定分支合并到当前分支,可能会出现冲突

git merge –abort             合并时发生冲突,可执行此命令放弃合并
git branch -d  

    删除分支

git branch -D

  删除一个还没被合并过的分支









git rebase可以把本地未push的分叉提交历史整理成直线;rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

 

六:Git连接远程库

git clone

   克隆远程库,在当前文件夹下生成一个本地库,默认只提取到master分支的数据

git clone -b


  克隆远程库的指定版本

git clone -b


 克隆远程库的指定分支

git checkout -b dev origin/dev    在本地创建和远程分支对应的分支













git branch –set-upstream branch-name origin/branch-name   建立本地分支和远程分支的关联

git pull origin

  从远端仓库提取指定分支的数据并尝试合并到当前分支,一定要注意:不要在master分支执行该操作,否则会把其它分支的数据合并到master分支!

Git总结

 

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

 

七:Git标签管理tag

Git的标签是版本库的快照,其实质是指向某个commit的指针。

Git 的tag对应于Github上的 releases。

git tag

 在当前分支创建一个新标签,默认标签是打在最新提交的commit上的,注意这里有分支的区别;如 git tag v1.0

git tag  查看当前分支的所有标签



git tag


  在指定commit上打标签

git show

       查看标签信息

git tag -a v0.1 -m “version 0.1 released” 1094adb   创建带有说明的标签,用-a指定标签名,-m指定说明文字








git push origin

    创建的标签都只存储在本地,不会自动推送到远程。使用此命令推送指定标签

git push origin –tags      一次性推送全部尚未推送到远程的本地标签



git tag -d

  删除指定标签

git push origin :refs/tags/

  删除远程仓库标签,注意,需要先将本地该标签删除




 

八:解决冲突及其他补充

冲突解决办法:

两个分支修改了同一个文件,合并时会产生冲突。解决办法就是手动把有冲突的地方进行修改,使用git status 可以查看冲突的文件,然后提交。

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。解决冲突后,再提交,合并完成。

 

补充:

1,分支合并

2,git stash

3,添加可忽略文件

vim .gitignore     添加可忽略文件,这些文件不会加入git版本库;Github上提供了各种开发语言相关的 .gitignore 文件

4,Github上给开源项目贡献代码

fork –> clone 到本地库–> 写代码并push到Github仓库 –> New pull request   

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214573.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午3:56
下一篇 2026年3月18日 下午3:57


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号