GIT —— 基本操作,分支管理,远程操作

news/2024/10/17 22:21:06/

GIT 企业开发

最近找实习,在完善简历,遂发一发存货,有待持续完善,我认为这部分非常的有意义

1. 基本操作

1.1 创建,配置本地仓库

创建

mkdir gitcode
cd gitcode
git init

配置

git config user.name "bts"
git config user.email "xxx"
git config -l

将配置生效于当前机器的所有仓库

git config --global user.name "xxx"

删除配置/删除全局配置

git config --unset user.name
git config --global --unset user.name

1.2 认识工作区,暂存区,版本库

  • .git:版本库,不允许手欠做任何修改!

  • stage/index/:暂存区,索引

  • gitcode/: 工作区

image-20230622202958468
  • 修改的工作区内容会写入**对象库objects**的一个新的git对象

1.3 添加文件

可查看提交记录

git log 

提交全部文件/指定的一些

git add .
git add [file]

将暂存区内容提交,请不要瞎写

git commit -m "你憋瞎写"

1.4 关于文件的修改

**git追踪管理的是修改!!**而不是文件

查看对于文件状态

git status

查看暂存区和工作区的差异

git diff [file]

查看版本库和工作区的差异

git diff HEAD --[file]

1.5 版本回退

前提!!commit后还没有push!!这也是我们回退的目的,不玷污远程仓库的代码

本质回退版本库中的内容,git log可查看commit id

git reset [--soft | --mixed | --hard][HEAD]
  • --soft:只回退版本库中内容
  • --mixed:只回退版本库和暂存区中内容(默认项)
  • --hard:全部回退(慎用!!)

撤销回退,那就拿着你想退到那儿的commit id,如果你已经清过屏了,但它被冲掉了也没后悔药了

git reflog

根据提交状态,可分为如下三种情况:

  1. 撤销工作区

你当然手动改咯,但是!太容易改出bug了,你写了一段时间你都不记得你干了啥了

回到最近一次add/commit状态

git checkout -- [FILE]

所以学会版本控制真的很重要,哎想当年我手动回滚相当痛苦了

  1. 撤销工作区和暂存区

reset还可以回退到版本区的当前版本,回退暂存区

git reset HEAD [file]

HEAD 当前版本,HEAD^上一版本,HEAD^^

这样就回到了场景1

git checkout -- [FILE]
  1. 撤销工作区,暂存区和版本库
git reset --hard HEAD^

1.6 删除文件

删除版本库中的文件

删除工作区中内容 - 将变动提交到暂存区 - 提交至版本库

rm [file] 
git add [file]
git commit -m "delete file"

我们可以将前两条简化为一条命令

git rm [file]
git commit -m "delete file"

2. 分支管理

  • 日常开发的代码并未经过测试验证
  • 多人协作开发

2.1 分支的创建,删除,切换,合并

查看当前仓库有几个本地分支

git branch
image-20230623094208171

HEAD可以指向其他任何分支(不止master),指向的就是工作分支(前面有*)

分支的创建

站在当前最新版本上创建分支

git branch [dev]
image-20230623095229878

分支的切换

git checkout [dev]
image-20230623100458710

也可以用一条命令来解决

git checkout -b dev

分支的合并

git checkout master
git merge dev
image-20230623100616807

分支的删除

必须在其它分支上删除dev分支,我们鼓励删除无用的(已完成任务)的分支

git branch -d dev

2.2 合并冲突

我们最有可能在merge过程中产生冲突

image-20230623102448691

无法确定保留那个,打开[file],需要手工解决

可以清晰看到记录 ——

git log --graph --abbrev-commit

3. 远程操作

如上所有内容都是在本地完成的!那么Git是分布式版本控制系统

“中央服务器”仓库(远程仓库) —— 用来交换修改,推送-拉取

image-20230623111018851
  • issue:用来和仓库的管理者沟通issue的,那么我科研也对github issue数量进行了调研
  • pull request:实际上我们不允许直接merge的,那我们先要提交“合并申请单”

3.1 克隆仓库


http://www.ppmy.cn/news/530699.html

相关文章

MIT 6.S081 Lab Four

MIT 6.S081 Lab Four 引言trapsRISC-V assembly (easy)代码解析 Backtrace(moderate)代码解析 Alarm(Hard)test0: invoke handler(调用处理程序)test1/test2(): resume interrupted code(恢复被中断的代码)代码解析issue解答 可选的挑战练习 引言 本文为 MIT 6.S081 2020 操作…

上海-447

题目: 奖牌的数量 内存限制: 256 Mb时间限制: 1000 ms 题目描述 小爱获得了 aa 枚金牌,她获得的银牌数量比金牌多 bb 枚,她获得的铜牌数量比银牌多 cc 枚。请问她一共获得了多少枚奖牌? 输入格式 第一行:单个整数表示 aa; 第二行:单个整数表示 b

上海-31

题目: 增长与翻倍 内存限制: 256 Mb时间限制: 1000 ms 题目描述 给定正整数 ss 和 tt,我们希望利用增长与翻倍的操作,让 ss 变成 tt。一步增长可以让数字加一,一步翻倍可以让数字翻倍。最少需要用多少步操作才能将 ss 变成 tt?,保证 s<ts<

疫情期间,上海口碑比较好的月子会所分享

3个月前跟老公探店萌诺月子会所(新华尊享店)&#xff0c;终于把月子会所这件事给定下来了! 环境&#xff1a; 出于安全考虑&#xff0c;在定月子会所的时候我觉得这种独栋式会所私密性比较好&#xff0c;比较了好几家&#xff0c;萌诺月子会所(新华尊享店)比较戳我。它的位置靠…

去上海

要说最近有什么值得骄傲的事, 就是独闯上海, 虽然有点夸张. (有钱就有胆) 感觉上海比杭州不容易迷路, 只要会找地铁, 地铁这东西不知道谁发明的, 还有地铁的收费方式, 真的很人性化了. 听说浦东区租房得上千, 几百的话得合租...? 周三在浦东找地方住宿, 网上说"168Meto连…

全新奢华品牌德国高仪SPA正式发布,定制奢华家庭水疗中心

美通社消息&#xff1a;全球卫浴解决方案和厨房产品供应商德国高仪推出全新奢华品牌——德国高仪SPA。“SPA”一词来源于拉丁语“Salus Per Aquam”&#xff0c;意为“Health through Water”。这也是德国高仪SPA的产品创立的核心理念。德国高仪SPA带来的独家产品旨在打造独特的…