『命令』- - Git相关命令_CarryBircks的博客-程序员秘密

技术标签: 常用命令  github  git  

git - github - gitee

Git
版本控制工具,负责管理代码.
管理代码:对文件/文件内容/文件夹,进行的增删改查的操作,git就负责记录这些东西.
Github
代码的远程托管平台(国外),网速不稳定,使用起来会加载的很慢,可能会导致操作的失败.
github.com
Gitee:码云
代码的远程托管平台(国内),网速比较稳定,使用起来也会快一些,稳定一些.
gitee.com

1-Git:

​ 以命令行为主,黑窗口,不同于大家所说的cmd窗口,cmd是windows的黑窗口,无法操作Linux命令
​ 先安装git软件,然后它会提供Linux的操作窗口

2-Git安装完成后:

  • 在任意目录的空白处,按右键,会弹出菜单栏:
    ​ Git Bash here,Linux的命令行(Git模拟的)
    ​ Git GUI here,git的图形化界面操作软件(页面显示的比较low,所以我们一般不用它)

3-Git概念:

  • 工作目录:
    用于存放代码的目录就是工作目录

  • 暂存区:
    会将工作目录中要提交到本地仓库的文件或文件夹,先放到暂存区中.
    类似一个缓冲区,要将管理的文件和文件夹,先放到缓冲区当中,然后再提交.
    在缓冲区中,可以做撤回的操作(不小心提交错了…)

  • 本地仓库:
    本地仓库就是用来存放git所管理的代码,创建仓库的时候会有一个非常明显的隐藏文件夹.
    可以在不同的文件夹中,创建本地仓库,这样我们操作的时候,每个本地仓库都是相互隔离的.

  • 远程仓库:
    Github和Gitee(推荐)

  • git文件的状态:

    • 已跟踪状态:
      已经被git所管理的文件.
    • 未跟踪状态:
      没有被git所管理的文件.

    当文件被增删改时,此时的状态也会发生变化,只不过我们需要重新的把它变为已跟踪的文件.

    git以文件内容来识别是否是同一个文件的,如果创建的是空的文件夹,文件夹中没有任何内容,那么git是不会管理这个文件的.

4-git命令-基本:

在Linux中,我们的复制和粘贴操作:
	ctrl+insert,复制
	shift+insert,粘贴
	ctrl+c或ctrl+v是不行的,是失效的,它只是window中的快捷键.
0.按右键,打开git bash here

1.git配置命令(git没有配置邮箱和用户名称时,是无法提交代码的.)
	配置用户名称
		git config --global user.name "用户名"
	配置邮箱账号
		git config --global user.email "邮箱(学习阶段可以随意写.)"
    查看配置信息
		git config --list
		
2.创建本地仓库,执行命令后,出现一个隐藏文件夹.git,交给git管理的代码或文件或文件夹都放在这个目录中
	git init
		初始化一个空的本地仓库

3.在本地仓库中创建一些文件
	touch ...
	mkdir ...

4.查看文件状态
	git status
		查看文件状态:
			Untracked files:未跟踪文件(红色),没有交给git管理的文件

5.将文件添加到暂存区,添加到暂存区后,文件的状态就是已跟踪的状态了(绿色)
	git add 文件名称

6.将暂存区中的文件,提交到本地仓库中
	git commit -m "日志信息"
	git commit
		弹出一个vi/vim编辑窗口,输入完后:wq,保存退出即可.

7.将暂存区中的文件或文件夹,撤回/撤销操作
	git reset 文件名称
	git restore --staged 文件名称

8.查看历史版本/日志信息
	git log
		能够查看到提交的指针,用户,邮箱,日志信息.
	git reflog

9.切换版本/版本控制:
	git reset --hard hash值

10.操作文件
	增:touch.../mkdir...
	改:vi.../vim...
	删:git中删除文件
		如果删除的是已跟踪的文件,必须要做提交操作.
		主要目的:是为了将这个文件从本地仓库中删除,而不是简单的从磁盘中删除.
		如果仅仅是从磁盘中删除了,本地仓库没有删除,如果将代码推送到远程仓库的时候,该文件还是存在的.

		方式1:按物理按键(deleted未跟踪的状态,红色)
			按delete键,我们是没有将它从本地仓库中删除
				如果想要从本地仓库中删除,必须执行add命令和commit命令
				告诉本地仓库,我已经将这个文件删除掉了,你本地仓库也更新一下它的状态吧.

		方式2:执行Linux命令(deleted未跟踪的状态,红色)
			Linux命令:rm -rf 文件名称
				如果想要在本地仓库中删除,必须执行add和commit命令.

		方式3:执行Git的命令(deleted已跟踪的状态,绿色)
			git rm -r 文件/文件夹名称
				-r代表递归删除
				由于执行的是git的删除命令,那么它直接将我们的文件状态变为了绿色的已跟踪状态
				此时我们直接执行commit操作即可,使用git的删除省了一步add的操作.

		如果发现,删错了文件,如何还原回来呢?
			1.deleted未跟踪红色的状态:
				git restore 文件名称
					一定是还没有提交到本地仓库的状态(红色)

			2.deleted已跟踪绿色的状态:git命令删除的
				git restore --staged 文件/文件夹名称
					将已跟踪的删除状态,变为未跟踪的删除状态
				git restore 文件名称
					将未跟踪的文件状态,进行还原.撤销了删除操作

5-Git命令-分支:

git中比较重要的一个内容
多任务开发,可以将每天/每个不同的版本,以分支的形式呈现.
比如:
master 默认分支
day01 分支
day02 分支

crm.1.0.1
crm.1.0.2

master分支创建的时机:
	在第一次提交代码的时候会创建一个默认的分支,master.

命令:
	查看本地分支:绿色标记的就是当前所处的分支,下面简称当前分支.
		git branch
	切换分支:
		git checkout 分支名称
			分支切换后,文件夹会发生变化.
			A分支有aaa.txt
			B分支有bbb.txt
			在这两个分支进行切换的时候,我们的文件是会发生变化的.
		细节:
			1.在切换分支的时候,要先将文件进行管理,这样我们再切换分支的时候就不会产生一些文件
			没有被管理了,导致分支中没有所需的文件.
			2.无法删除当前所处的分支,比如当前所在day01分支,就必须要切换到其他的分支
			才能够删除day01分支
			3.创建的分支和当前分支的代码是一致的.

	创建分支
		git branch 分支名称

	删除分支
		git branch -d 分支名称
			当分支没有发生边变的时候,使用-d即可删除
		git branch -D 分支名称
			当分支发生了变化的时候,使用-D即可删除

	合并分支:
		git merge 目标分支名称
			将目标分支的代码合并到当前分支

6-Git命令-远程仓库:

  • 远程仓库:

    • 关联远程仓库(多个) : 默认的远程仓库的名称就叫做origin

    ​ git remote add 远程仓库的名称 远程仓库的地址 :

    git remote add origin https://gitee.com/lmx1989/yx2009.git

1-查询当前所关联的远程仓库
	git remote -v

2-删除当前所关联的远程仓库
	git remote remove 远程仓库名称

3-重命名远程仓库的名称
	git remote rename 旧的仓库名称 新的仓库名称
		仓库名称不能和已有的名称重复

4-推送:
	本地仓库分支的代码到远程仓库
	git push 远程仓库名称 本地分支的名称
		将哪个分支的代码推送到远程仓库中(github||gitee)

5-克隆:在普通文件夹下操作即可
	克隆将远程仓库的代码克隆到本地仓库,我们也可以指定一个远程仓库分支的代码克隆下来
	克隆下来后,会创建一个仓库名称的文件夹,还会自带.git本地仓库和远程仓库的关联关系
	git clone 远程仓库地址
		克隆下来的分支是默认的分支,默认分支并不一定是master分支
	git clone -b 远程仓库分支名称 远程仓库的地址
		克隆下来的是我们指定的分支代码

6-拉取:
	将远程仓库的代码更新到本地仓库,只更新我们想更新的分支代码
	前提是我们已经有了本地仓库,然后更新其他程序员提交的代码
	A a模块 B b模块,两个模块之间几乎没有关联,两个模块都处于同一个分支下
	git pull 远程仓库名称 本地分支的名称
		拉取的是同一个远程分支的代码
	git pull 远程仓库名称 远程分支名称:本地分支名称
		拉取其他的远程分支的代码
		拉取下来的本地分支的名称,可以和远程仓库名称不一致,但是不推荐.

7-删除远程仓库的分支:
	git push -d 远程仓库名称 远程分支名称
		删除远程分支
		注意:无法删除远程仓库的默认分支

默认分支的意义:
	在开发的时候,我们不在默认分支上编写代码.
	我们只在默认分支上进行项目的介绍,列出大纲/内容
	会在其他的版本上,进行代码的提交

感谢阅读!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45958469/article/details/115253213

智能推荐

贝塞尔曲线_dglf54292的博客-程序员秘密

滴滴终面问了相关的贝塞尔曲线: 在计算机图形学中广泛应用,用来描述矢量曲线或线段一阶二阶三阶注意:每个线段之间从开始到结尾的移动时间都是相同,按比例的前端涉及到的地方:1.用Canvas可以画贝塞尔曲线2.css动画中的动画属性...

DataReader是什么?_web.datareader_bubuhemalu的博客-程序员秘密

ADO.Net 有两种访问数据库源的方式,分别为Dagareader对象及DataSet 对象,就里说一下DataReader DataReader对象是用来读取数据库的最简单方式,它只能读取,不能写入,并且是从头至尾往下读的,无法只读某条数据,但它占用内存小,速度快,有时需要用. DataReader的创建 首行当然是打开数据库,然后建立Command对象,确认执行的SQL语句,最后用Comma

POI 导出Excel 带图片导出 使用XSSFWorkbook_(xssfpatriarch)爆红_wenzheng_du的博客-程序员秘密

参考链接:POI导出图片到Excel不生效 (2007以上版本)_rj_han的博客-程序员秘密 //数据源 查询库 List<FormMt> mtList = formMtMapper.selectFormMtList(); //创建表格 XSSFWorkbook workbook=new XSSFWorkbook(); XSSFSheet sheet = null; XSSFR

nxp-kw36-Flash配置_panshoup的博客-程序员秘密

nxp-flexnvm_eeprom用例配置8kramflash_security_state_t securityStatus = kFLASH_SecurityStateNotSecure; /* Return protection status */status_t result; /* Return code from each flash driver function *//* Init hardware */BOARD_InitPins();BOARD_BootClockR.

maven常用打包命令_mvn打包命令_墨明&棋妙的博客-程序员秘密

maven常用打包命令1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。2、mvn test 测试,并生成测试报告3、mvn clean 将以前编译得到的旧的 class 字节码文件删除4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用6、mvn clean install -Dmaven.test.skip=true 打成jar包,并且抛弃测

随便推点

discuz忘记管理员密码解决办法_杨江的博客-程序员秘密

转自这里:自己做的论坛网站之类的,数量多了以后,普遍都会疏于管理经常会因为长时间的不登录而忘记密码,这个论坛我就忘了好几次了由于对discuz不了解,我以为只修改用户表的密码字段就可以了但是尝试了好多次都依然失败,开始以为是加密的方法不对,原来需要修改三个数据表,囧rz于是就在本地新建了一个用户,把密码复制进去,依然失败在官网找了半天也没有找到能用的密码工具后来终于发现一个通过phpmyadmin

csv文件中字符串替换(csv换行符错误使用造成PHP读取异常)_csv文件中的^m_hoftime的博客-程序员秘密

csv文件中换行符使用对不同系统有不同的影响,下面介绍一个案例。前两天收到了几个csv文件,使用PHP提供的 fgetcsv() 函数报内存错误,通过一部分调试,判断原因为换行符异常。Mac下直接通过系统命令,查看输出,命令如下:head  aaa.csv (输出aaa.csv前十条内容),输出结果是一整串巨长的字符串,貌似换行符未生效。(由于保密原因暂不贴图)ok,通过了上面的命令,

c++11 container liber: std::queue std::map std::vector std::unique_ptr_bamboolsu的博客-程序员秘密

typedef std::map,std::unique_ptr> TSocketPacketMap;typedef std::vector> TBufferRange;std::unique_ptr SocketPacketMap;std::unique_ptr BufferRanges;

多个文件夹快速重命名的简单方法_如何快速命名多个文件夹_职场人参的博客-程序员秘密

那么怎么样才是为自己工作?就是我们要不断学习和钻研,让自己的工作更加快速高效,让我们的能力和经验丰富。所以以上我分享多个文件夹快速重命名的简单方法,聪明的你学会了吗?

bilibiliclass30_C语言_指针的进阶总结篇_神迹小卒的博客-程序员秘密

指针的进阶目录1. 字符指针2. 数组指针3. 指针数组4. 数组传参和指针传参5. 函数指针6. 函数指针数组7. 指向函数指针数组的指针8. 回调函数9. 指针和数组面试题的解析指针1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。2. 指针的大小是固定的4/8个字节(32位平台/64位平台)。3. 指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候访问的字节个数。4. 指针的运算。字符指针在指针的类型中我们知道有一种指针.

推荐文章

热门文章

相关标签