首页 > 系统相关 >Linux-git

Linux-git

时间:2023-10-20 09:03:34浏览次数:27  
标签:文件 git 暂存区 版本 Linux 云端 分支

目录

git简介

git的功能是用一棵树的形式将代码的历史版本维护出来
工作区:仓库的目录,独立于各分支
暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
版本库:存放所有已经提交到本地仓库的代码版本。是树形结构的各节点

git常用命令

配置

  • git --global user.name xxx:设置全局用户名,保存在~/.gitconfig文件下
  • git --global user。email xxxx:设置全局邮箱地址,保存在~/.gitconfig文件下

初始化仓库

  • git init:初始化仓库,在当前目录下创建了一个空仓库,将所有仓库的信息放在.git隐藏文件夹下

将文件添加到暂存区

  • git add xx:将xx文件加入到暂存区,
  • git add .:将所有待加入到暂存区的文件加入到缓存区
    修改project后(创建了一个readme.txt),再次查看惨仓库状态git status,可以看到有一个readme.txt未加入暂存区
    image
    git add readme.txt后,显示有一个readme.txt文件在暂存区中
    image

将暂存区文件加入版本库

  • git commit -m "给自己看的备注信息":将暂存区的内容提交到版本库
    image
    修改readme.txt文件
    image
    查看仓库当前状态用git status命令,可以看到我们修改了readme.txt文件
    image
    将修改后的文件加入暂存区
    image
    如果文件颜色变成绿色则说明文件已经被放入暂存区

对比工作区某文件和暂存区中的区别

  • git diff xx:xx为要对比的文件名
    image

将暂存区的文件移除但git仍管理

  • git restore --stage xx:xx为文件名,此命令仅将暂存区的xx文件移除暂存区,但git仍然管理这个文件

将文件移除暂存区并且git不再管理

  • git rm --cached xx
    如果我们想git接着管理我们就再add一遍就可以了

查看版本库

  • git log:查看当前分支中的所有版本
    image
    image

切换到之前的版本

  • git reset --hard HEAD^:回滚到当前HEAD的前一个版本,两个^表示回滚到当前HEAD的前两个版本
  • git reset --hard 版本号:回滚到版本号的版本,这样我们就可以回滚到任意版本了
    image
    回滚后查看git log,可以看到从空走到当前HEAD的版本
    image

注意这里的回滚是不会将我们之前的内容删掉的,如果回到我们跳过来的版本呢?可以先利用git reflog:查看HEAD移动的记录,这样我们可以找到每个移动过的版本的编号,git reflog看到的是前7位,关于回滚的含义,这里将本地存储的文件跳回版本号存储的文件,这个就是一个帮助我们管理历史版本很有效的方法

image
image
image
跳回到add 333版本

image

恢复文件

  • git restore xx:将修改的xx文件恢复,他是将我们的文件恢复到和暂存区一样,而不是回滚到之前的版本
    image

持久化

  • git commit -m "备注":将暂存区的内容持久化
    image
    也可以只讲暂存区中的一部分文件持久化
    git add xx 然后 git commit -m xx
    image

云端

将本地的项目推送到远程仓库

  • git remote add origin [email protected]:cxy8/project.git:将本地目录和远程目录对应起来 [email protected]:cxy8/project.git:是名称@后面是域名,cxy/project.git是需要对用的文件路径

  • git push -u origin master:将本地仓库推送到远程仓库

将远程仓库的文件克隆下来

需要注意的是我们并没有将移动记录克隆下来也就是说没有reflog没有被记录下来

image

分支操作

简述

我们一般在开发的时候一般不会在主分支上开发,一般会在不同的分支进行开发

操作

创建新分支

  • git checkout -b branch_name:创建一个名为branch_name的分支

查看分支

  • git branch

image

回到分支

  • git checkout branch_name

合并分支

  • git merge 分支名:将分支的HEAD节点合并到当前分支的当前节点
    image
    合并分支时出现矛盾需要我们手动更改
    image

image
此时readme.txt文件的内容如下:
image

删除分支

  • git branch -d branch_name:删除分支

将本地的commit提交到云端

  • git push (-u):第一次提交需要加上-u,后面则不需要
    image

将其他分支同步到云端

  • git push --set-upstream origin dev3

删除云端的分支

  • git push -d origin dev3:删除云端dev3这个分支

将云端分支和本地分支对应起来

  • git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1branch_name2对应起来

将云端同步到本地

  • git pull:相当于将云端的分支拿下来然后再merge

将云端分支合并到本地当前分支

  • git pull origin branch_name

多人协同

多人协同开发时都不会在master分支上开发,都是在dev分支上进行开发,每个人开发一个分支

添加密钥

git-keygen
将密钥添加到仓库
创建新分支并和远程创库的分支对接
git checkout -b dev 
git branch --set-upstream origin dev
git pull

标签:文件,git,暂存区,版本,Linux,云端,分支
From: https://www.cnblogs.com/cxy8/p/17773265.html

相关文章

  • linux 内核 --- 关抢占/关中断,临界区
     preempt_disable()local_irq_disable()/local_irq_save(flags)spin_lock()spin_lock_irq()/spin_lock_irqsave(lock,flags)spin_lock()会调用preempt_disable()导致本核的抢占调度被关闭(preempt_disable函数实际增加preempt_count来达到此效果),spin_lock_irq()是local_i......
  • git提交到远程库如何退回呢?
    找到提交到远程库的编号xx在ideaterminal中使用以下命令,退回到指定的版本号gitreset--soft编号xxx提示:--soft会保留指定版本下的代码到暂存区--hard指定版本本地库下的代码会丢失然后使用以下命令强制推送到远程库,注意强制推送会导致指定版本后的远程库代码会......
  • 你是否还迷茫要不要学习Linux?
    近几年Linux这个词好像很流行,无论是现实工作中,还是在网络信息中均可以听到或者看到有关Linux相关的内容,可以说Linux无处不在。说到这,有人可能会问了,我对Linux比较感兴趣,但是没有接触过Linux,对它不了解,不知道是否适合自己,是否值得我花费时间和经历去深入学习,因此陷入一种比较迷茫的......
  • linux最大句柄数设置
    1、用户级别在/etc/security/limit.conf配置,重新登录生效usersoftnofile65535userhardnofile655352、进程级别可以使用命令查看sysctl-a|grepfs.nr_open配置方式/etc/sysctl.conffs.nr_open=1000000用户级别设置的最大值不能超过进程级别的,否则不......
  • Linux操作系统从BIOS到bootloader是如何运行的
    操作系统一般都会在安装在硬盘上,在BIOS的界面上。你会看到一个启动盘的选项。启动盘有什么特点呢?它一般在第一个扇区,占512字节,而且以0xAA55结束。这是一个约定,当满足这个条件的时候,就说明这是一个启动盘,在512字节以内会启动相关的代码。这些代码是谁放在这里的呢?在Linux......
  • Linux远程管理协议
    (RFB、RDP、Telnet和SSH)是Linux的远程管理协议。提到远程管理,通常指的是远程管理服务器,而非个人计算机。个人计算机可以随时拿来用,服务器通常放置在机房中,用户无法直接接触到服务器硬件,只能采用远程管理的方式。远程管理,实际上就是计算机(服务器)之间通过网络进行数据传输(信息交换)的过......
  • Linux下KVM平台知识详解(1)——KVM基础知识
    一、虚拟化简介(一)虚拟化概述在计算机中,虚拟化技术是一种资源管理技术,可以将计算机的各硬件资源(包括CPU、内存、磁盘、网络)等予以抽象,转换后呈现出来,以供用户更好的使用。系统虚拟化可以将底层物理设备、上层操作系统和软件之间分离,可以在一台物理设备上划分出多台机器。虚拟化技术......
  • GIT-cnblog
    Git目录Git简介安装与常用命令本地仓库配置别名基础操作分支分支规范仓库托管配置ssh公钥常用指令git在Idea中的使用简介分布式版本控制工具安装与常用命令ls/ll查看当前目录cat查看文件内容touch创建文件vivi编辑器i或insert键:插入esc退出编辑模式zz或:wq......
  • git 统计代码行数
    统计指定分支下的所有作者的代码数目gitlog--format='%aN'|sort-u|whilereadname;doecho-en"$name\t";gitlog--author="$name"--pretty=tformat:--numstat|awk'{add+=$1;subs+=$2;loc+=$1-$2}END{printf"adde......
  • 怎样在Windwos主机上配置git环境变量(超详细教程)
    一:概述我们在使用github时,时不时需要使用到git来进行管理,为了更好地方便去操作,我们可以配置环境变量以此来方便我们的操作二:具体说明以及配置过程(git已经安装的情况下,如若未安装,请先安装)(1)查看git的安装目录夹,演示截图如下所示:(2)进入git安装的目录文件夹,里面有以下的相关文件(3)文......