git工具的使用方法[通俗易懂]

一、SVN与git的区别SVN是“集成式”管理方式,所有的“版本控制器”都在中央服务器上,每个开发人员的的计算机都要连接到中央服务器上才能进行合作开发。开发人员一般只能在公司才能进行开发(因为中央服务器在公司),局限性较大。git是“分布式“管理方式,开放人员的每台计算机上都有一个“版本控制器”,每个开发人员把自己开发的模块的代码都上传到github上(充当一个远程仓库,类似

大家好,又见面了,我是你们的朋友全栈君。

一、SVN与git的区别
SVN是“集成式”管理方式,所有的“版本控制器”都在中央服务器上,每个开发人员的的计算机都要连接到中央服务器上才能进行合作开发。开发人员一般只能在公司才能进行开发(因为中央服务器在公司),局限性较大。
git是“分布式“管理方式,开放人员的每台计算机上都有一个“版本控制器”,每个开发人员把自己开发的模块的代码都上传到github上(充当一个远程仓库,类似与“中转站”的作用),其他人可以从github上下载相应的代码进行开发。git方式不需要中央服务器,开发人员可以做到“随时随地”的开发。(因为github是一个公用的平台,只要在有网的地方,就可以登陆去下载相应的代码版本)。

二、git工具的安装
1.打开github的网站 https://github.com/ ,登陆github(如果没有github账号的话,要先去注册一个,注意:邮箱和设置的用户名尽量是自己经常用的,而且用户名不要太复杂,因为在git命令里面会用到)。
2.创建一个”仓库(create repositories)“,给仓库起一个名字,比如”drag“(一般名字和自己项目的功能有关,尽量做到”见名知义“)。
3.可以”勾选上“ Readme,(也可以不勾选),这是对你创建的项目的一个简单介绍。
4.把自己创建的项目(比如上面的drag)从github上,下载到本地,以便在本地进行开发。通过以下的命令进行实现:
假如你想把你的项目放在E盘的myProjects文件夹下:
cd E: (按回车)
cd myProjects git clone url (按回车,这里的url是你在github上创建项目时,自动生成的一个网址,在github上可以找到。)
这个命令执行完毕后在myProjects文件夹下会有一个drag文件夹,一个readme文件(或许没有)
5.设置”贡献者“,贡献者就是指参与该项目开发的人(在开发工程中,如果你对代码进行了修改,别人能够查看你做了哪些修改),设置贡献者的git命令如下:
git config –global user.name “注册时起的用户名”
git config –global user.email “注册时的邮箱”
贡献者设置完成后,可以通过git config –global uer.name 命令查看设置的用户名,git config –global user.email 查看设置的邮箱。

三、git的主分支和三个区的介绍
1.主分支master:主分支一般是开发过程中”稳定“一个部分,为了防止在开发过程中出现意外把”主分支“破坏掉。一般会另开一个”分支“(非主分支,比如起名next),在next分支上进行开发,开发完成后,再合并到主分支master上。
2.git的三个区:工作区、暂存区、版本区。
工作区:drag文件夹下的所有文件
暂存区的左用
(1).作为过渡层
(2).避免误操作
(3).保护工作区和版本区 (内容丢失后,可以从”暂存区“找回)
(4).分支处理 (比如:把正在进行开发的分支上的内容暂时放到”暂存区“,去修改其他分支上的bug)
版本区:主分支”master”
三个区之间的联系:一般是在”工作区“进行开发,然后提交到”暂存区“,再有”暂存区“提交到“版本区”
工作区——>暂存区———->版本去
四、git工具的常用命令
1.git status 查看“工作区”和“暂存区”的状态
2.git add filename 把文件从“工作区”添加到“暂存区” (工作区中还有该文件)
3.git add . 把工作区下的所有文件都添加到暂存区
4.git commit filename 把文件从“暂存区”提交到“版本区”
5.git commit 把暂存区中的所有文件都提交到“”版本区 会弹出一个记事本,让我们添加注释
6.git commit -m “自己写的一些注释” 我们直接添加注释,这样不会弹出一个记事本去添加注释
7.git reset HEAD filename 把文件从“暂存区”撤回到“工作区”
8.git commit -a -m “自己写的注释” 把文件从“工作区”直接提交到“版本区”(本质上没有跳过暂存区,-a其实就是添加到暂存区)
正常的流程是:工作区中的文件发生改变(git status命令可以查看)–>git add filename(填到暂存区)–>git commit filename(提交到版本区)–>git push origin master(把版本区中的文件同步到github上)–>刷新你的github账户就可以看到新添加的文件

五、对比命令(主要用来查看工作区、暂存区、版本区三个区之间的文件中的代码有什么不同之处)
1.git diff 查看工作区与暂存区文件之间的差异
2.git diff –cached(或者–staged) 查看“暂存区”与“版本区”文件之间的差异
3.git diff 分支名字 查看“工作区”与“版本区”文件之间的差异

六、撤销命令
1.git reset HEAD 文件名 将文件从“暂存区”撤回到“工作区”
2.git checkout – 文件名 将“工作区”的文件撤销回之前“版本区”的文件
3.git commit –amend 如果有“误提交”,想对提交重新操作(比如:有A,B两个文件,把A提交了,而B没有提交,我们想要的是A,B一起提交,此时就可以将B提交到暂存区,然后用git commit –amend),此时,A,B就能够一起提交了

七、git的删除命令
//工作区的文件可以随意的创建和删除(就像平常在电脑上创建和删除其他文件一样)
1.git rm 文件名 把暂存区的文件删除(前提是:工作区没有该文件,暂存区有该文件)
2.git rm -f 文件名 当“工作区”和”暂存区“都有某个文件时,此命令会把”工作区“和”暂存区“的该文件都删除
3.git rm –cached 文件名 当”工作区“和”暂存区“都有某个文件时,此命令会把”暂存区“的该文件删除,但是”工作区“的该文件不会被删除,仍然存在

八、文件恢复命令
1.git checkout id名 文件名 把”工作区“的某个文件删除后,用该命令可以恢复回来
2.git reset –hard id名 恢复整个版本的文件(文件也许有多个)
3.git reset –hard id名 HEAD^ 恢复到过去某一个版本的文件(可能有多个文件)
4.git reset –hard HEAD~数字 恢复到过去的某一个版本的文件(当数字为1的时,其实就是上面的HEAD^)
5.git reflog 执行上面的3或者4命令后,又想回到现在的版本,可以此命令调出文件的多个版本的id,然后从中找到现在版本的id,然后再调用git reset –hard id名 命令恢复到现在这个版本

十、将本地文件同步到github的”远程仓库“上
通过命令:git push 远程仓库名字 同步的分支名 将版本区中的文件同步到github的仓库中
可以通过git remote 命令查看远程仓库的名义,默认是 origin
可以通过 git remote -v 命令可以查看远程仓库的地址

十一、多人协作开发下,解决冲突
1.git fetch
git diff master origin/master 查看远程和本地的不同
git merge origin/master 发现不同后,手动合并
2.git pull (把远程仓库中的代码拿下来和本地的代码自动合并)

十二、git下的分支(有利于多人协作开发)
1.git branch 查看分支
2.git branch new1 创建了一个新的分支new1
3.git checkout new1 切换到new1分支下
4 简写:git checkout -b new2 创建并切换到new2分支下
5.分支的合并:
假如在new1分之下,有了新的修改(有了c5版本),如果想把master分支下的代码也变成c5版本,需要进行分支合并,方法如下:
1.切换到master分支下:git checkout master
2.用git merge new1 命令 这样,master和new1分支就合并了,此时,master分支的指针也指向了c5
6. git branch –merged 查看已经合并的分支
7.git branch –no-merged 查看没有合并的分支
8. 一般来说,new1分支与master分支合并后,new1分支就没用了,可以删除掉new1分支了
1.git branch -d new1 把合并后的new1分支删除掉(如果new1分支没有合并,用此命令是无法删除的)
2.git branch -D new2 强制把没有合并的分支删除
9.当不同分支下的代码进行合并时,有可能会发生冲突(如:master分支与new1分支下的代码合并)
假如当前在master分支下:
1.合并 git merge new1
2.有冲突提示,git status 能够看到有冲突的分支
3.把有冲突的文件手动修改,修改完成后重新提交,git commit -a -m “注释”
10.将git 上的分支同步到github上
git push 仓库名 分支名 比如: git push origin new1 把new1分支同步到github上

十三、github上的标签release,一般是指项目开发完成后,给项目标记的版本
1.git tag 查看标签
2.git tag v1.0 创建标签v1.0
3.git push origin(仓库名) v1.0(标签名) 将v1.0标签同步到github上

十四、git工具上的常用辅助命令
1. cd.. 返回上一级
2. ls 查看文件下的目录结构
3. mkdir hello 创建一个hello文件夹
4. tab键 自动补全git 命令
5. git config –global alias co checkout 给checkout起一个别名co,之后可以用co来代替checkout
6. enter 继续查看没有显示出来的日志记录(git log)
7. q键 退出日志查看界面
8. 工作区:数字是红色
9. 暂存区:数字是绿色
10. ~:代表有修改
11. !:代表有冲突

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

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

(0)
上一篇 2022年4月8日 下午6:40
下一篇 2022年4月8日 下午7:00


相关推荐

  • 2hutool实战:DateUtil-常用的时间类型转换「建议收藏」

    Hutool是一个小而全的Java工具类库,github的stars19K+的优秀开源项目。hutool实战:常用的时间类型Date,DateTime,Calendar和TemporalAccessor(LocalDateTime)转换关键字:javajavaJAVAhutoolhutoolHutool工具类工具类工具类DateUtilDateUtilDateUtil

    2022年4月13日
    37
  • 科研神器(高效开发工具)

    科研神器(高效开发工具)

    2020年11月8日
    208
  • java js对象转字符串数组_JS数组转字符串(3种方法)【转】

    java js对象转字符串数组_JS数组转字符串(3种方法)【转】JavaScript 允许数组与字符串之间相互转换 其中 Array 方法对象定义了 3 个方法 可以把数组转换为字符串 如表所示 数组方法说明 toString 将数组转换成一个字符串 toLocalStrin 把数组转换成本地约定的字符串 join 将数组元素连接起来以构建一个字符串 Array 对象的数组与字符串相互转换方法数组方法说明 toString 将数组转换成一个字符串 toLocal

    2026年3月19日
    3
  • python语言变量命名规则有什么_Python变量命名规则(超级详细)

    python语言变量命名规则有什么_Python变量命名规则(超级详细)Python需要使用标识符给变量命名,其实标识符就是用于给程序中变量、类、方法命名的符号(简单来说,标识符就是合法的名字)。Python语言的标识符必须以字母、下画线(_)开头,后面可以跟任意数目的字母、数字和下画线(_)。此处的字母并不局限于26个英文字母,可以包含中文字符、日文字符等。由于Python3支持UTF-8字符集,因此Python3的标识符可以使用UTF-8…

    2022年5月3日
    131
  • 理解VUE响应式原理[通俗易懂]

    理解VUE响应式原理[通俗易懂]1、响应式原理基础响应式原理基础是基于Object.defineProperty(obj,prop,descriptor),descriptor里面可以定义get和set方法,可以在获取属性值事触发get方法(可以收集依赖),设置属性值时触发set方法(更新依赖)。扩展:上面是vue2.0的基础原理,vue3.0的基础原理是:2、核心对象:Dep与WatcherDep:vue在data里申明的每一个属性都会生成一个Dep的实例对象,De…

    2022年4月30日
    34
  • 电气设计心得体会_原理图设计规范

    电气设计心得体会_原理图设计规范本博客将简述中兴通讯股份有限公司在原理图设计中需要注意的一些事项,其中包含了中兴设计开发部积累的大量硬件开发知识和经验,可以作为学习使用。硬件工程师可以学习并掌握检查条目的内容以及对条目的详细说明,学习部门经验。

    2025年9月18日
    7

发表回复

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

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