热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git管理版本详细教程

一、远程仓库与本地仓库关联的逻辑关系Remote: 远程仓库,即你在 Github 或者 Gitee 等平台上创建的项目仓库;Repository: 本地仓库,你可以认为就是我们拉

一、远程仓库与本地仓库关联的逻辑关系

0



  • Remote: 远程仓库,即你在 Github 或者 Gitee 等平台上创建的项目仓库;

  • Repository: 本地仓库,你可以认为就是我们拉取项目后生成的 .git 文件夹;

  • Index: 暂存区,事实上它只是一个文件,即 .git 文件夹里面的 index 文件,它保存即将提交到本地仓库的文件列表信息;

  • workspace: 工作区,即你在 VS code 或者 WebStorm 编译器正在编写的代码。

       如上内容有参考其他文章,如有侵权请联系我删除。

二、使用Git管理程序版本详细教程

1、在远程Git上创建项目并获取Git项目的地址:创建好项目远程仓库,就能获取到一个 .git 结尾的地址,或者公司直接提供一个地址,如下:

 



2、通过Git Bush在我们本地建的空目录下面输入下面命令即可拉取到项目到本地。

git clone https://github.com/XXXXXX/XXXXXX.git

3、查看远程分支:拉取完项目后,我们是处于 master/main 主分支,根据要求看是否需要切换到某个分支进行特定开发:

git branch -r

4、查看本地分支:本地创建的分支情况应该是和远程分支对应,如果本地分支未何远程分支关联,则在本地的操作不影响远程:

git branch



5、创建本地分支:通过下面的命令,创建好一个本地分支,该分支是基于当前所在分支创建的:

git branch dev(分支名称, 可以随便取)
关于分支的其他命令
①git branch -m newBranchName //重命名本地分支(对远程仓库不会有影响)

git branch -d dev                  //删除本地分支(对远程仓库不会有影响)



 

6、切换分支:创建好本地分支,我们就可以切换到该分支上

git checkout dev //创建和切换两个操作也可以一起做: git checkout -b xxx (创建并切换到该本地分支)



7、发布本地分支到远程分支,当创建好一个本地分支的时候,把该分支发布到远程仓库去,让远程仓库也拥有该分支,且让它和你本地分支进行关联,方便我们后续直接进行 git pull 或者 git push 操作。

git push origin dev

8、建立本地分支与远程分支的关联

(1)本地分支与远程分支关联这步不是必须,但后续就能很方便的直接使用 git pull 或者 git push 获取或提交该分支的代码,而不用去指定分支。

(1)本地新建分支,但是远程没有新建分支,执行如下命令之后,远程仓库会多一个dev分支
①git push -u origin tes
②git push --set-upstream origin dev
(2)本地没有分支,远程已存在分,我们需要创建本地分支,并将远程分支和本地的进行关联支
① git checkout -b Test origin/Test
②git checkout -b dev --track origin/dev
③git pull origin dev:dev-------两个dev分别表示远程分支名:本地分支名
(3)本地有分支,远程有分支,但还未关联,需要进行关联
git branch --set-upstream-to=origin/master



11、添加文件进缓存区,在对代码更改后,要把代码提交到远程仓库,我们就要先把代码添加到暂存区,之后提交到本地仓库,最后才能提交到远程仓库。

git add xxx(文件路径) # 多个 git add xxx(文件路径) xxx(文件路径) xxx(文件路径) ...
//把工作区更改的所有文件都添加进暂存区
git add .
//当你误把文件添加进暂存区,也不要慌,有添加,就肯定有删除
git rm --cached xxx(文件路径)
//清空暂存区,暂存区实质是 .git 目录下的 
rm .git/index

 

12、查看工作区与暂存区的状态,这个命令用于查看工作区和暂存区的状态,能看到哪些文件被修改了,它修改后是否被暂存了,又或者还没有暂存。这个暂存的过程,专业的叫法是 Git tracked,也就是是否被跟踪。

git status
绿色的文件是已经添加进暂存区的,红色的文件则是未添加到暂存区的,
新文件则是 new file,
修改的文件则是 modified,
删除的是 deleted。

13、提交暂存区文件到本地仓库

git commit -m "说明信息"
//通过上面的命令,我们就将暂存区的文件提交到本地仓库了,我们可以通过 git status 再次查看暂存区的情况
查看提交记录
git log

//如果你想要显示最近几条记录,你可以通过 git log -n(n为数字, 可以随意指定) 命令完成。

 

14、提交本地仓库文件到远程仓库

git push

 

 15、其他命令

①在远程建立一个新的分支,同步到本地
git fetch origin git branch
-r
②合并分支
比如在dev1开发一个功能,这个功能在dev1上验证通过了,要合入master,可以使用 git merge 来实现。
切换到主分支 git checkout master 合并dev1到master git merge dev1
③查看关联情况
git branch
-vv
④查看远程仓库地址
git remote -v

推荐阅读
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 前言本篇为大家总结社区多人合作常见的场景和对应的git操作命令。本篇非新手教程,阅读本篇前需具备Git基础知识。Git入门教程请参考https://www ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 安装Tensorflow-GPU文档第一步:通过Anaconda安装python从这个链接https:www.anaconda.comdownload#window ... [详细]
  • 双十一在家学用 Git
    对于所有的开发者来说,掌握一门代码版本控制系统都是必须的,无论是自己做项目,团队合作,工作中的合作,都离不开版 ... [详细]
  • 编写一个简单的内核驱动模块时报错 “/lib/modules/3.13.032generic/bulid: 没有那个文件或目录。 停止。”...
    编写一个简单的内核驱动模块1staticinthello_init()2{3printk(“hello,Iaminkernelnow\n”);4return0;5}6voidadd ... [详细]
  • 前端简史之纵横:Node东出
    引💡Ajax的出现,带来了jQuery时代,而jQuery时代也伴随着Node风暴淡淡退出了历史舞台。如果说Ajax给前端带来了从网页静 ... [详细]
  • git向远程仓库提交遇到的各种坑
    **码云***gitinit初始化本地仓库gitinit*gitremoteaddorigingitgithub.com:xueqinngchennLocal-agent.git将 ... [详细]
author-avatar
勇_俊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有