Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Lndra09/git_2024
Browse files Browse the repository at this point in the history
Branch merging
  • Loading branch information
Lndra09 committed Nov 10, 2024
2 parents 2392f3d + ae681c1 commit e976b77
Show file tree
Hide file tree
Showing 53 changed files with 376 additions and 1 deletion.
Binary file added .DS_Store
Binary file not shown.
Binary file added 2024-finalproject/.DS_Store
Binary file not shown.
37 changes: 37 additions & 0 deletions 2024-finalproject/GL0752/Git_application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# ***Git应用***

**1.** 方式一:使用git reset --hard HEAD 把工作区和暂存区都恢复到最后一次提交的状态,所有未提交的修改都会被丢弃。由于--hard参数会强制覆盖工作区的修改,使用时需考虑考虑。

![图片1](./images/图1.png)

方式二:使用git checkout -- <文件名> 这将把指定文件恢复到最后一次提交的状态。

![图片2](./images/图2.png)

**2.** 不修改历史记录:git reset --soft <commit_hash> 将 HEAD 指针移动到指定的提交,但是不会更改工作目录和暂存区的内容。

![图片3](./images/图3.png)

修改历史记录:git reset --hard <commit_hash>:将 HEAD 指针移动到指定的提交,并重置工作目录和暂存区,使其与指定提交的状态完全一致。这会完全丢弃从指定提交之后的所有更改,并且无法恢复。

![图片4](./images/图4.png)

**3.** 方式一:使用rebase命令,将一系列提交从一个分支上“复制”并“粘贴”到另一个分支上。

git checkout feature-branch

git rebase master

git checkout master

git merge feature-branch

![图片5](./images/图5.png)

方式二:使用 cherry-pick`命令合并特定提交,将某个分支上的特定提交合并到其他分支。

git checkout master

git cherry-pick <commit-hash>

![图片6](./images/图6.png)
10 changes: 10 additions & 0 deletions 2024-finalproject/GL0752/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# ***学习总结***

**1.** 这门课程开始,我们根据教程学会了双系统ubuntu的安装,并解决了在安装和配置系统时所遇到的各种问题;此外,ubuntu的使用与windows有很大的差别,需要去适应各种操作。

**2.** 课程介绍了Linux系统架构和命令行环境的强大功能,通过学习,我掌握了许多常用的命令并学会了数据整理的基本方法和技巧,了解了正则运算的基本使用。

**3.** 理解了CMake的基本概念和工作原理,掌握了CMake的基本命令,如cmake、make等,以及它们的基本用法。学会了如何编写基本CMakeLists.txt文件。 理解了Catkin工作空间的概念和结构,了解了Catkin构建系统的工作流程,即使用catkin_make或catkin build命令编译整个工作空间。

**4.** Git是一款分布式版本控制系统,在多人协作的项目开发中发挥着重要作用。在课程中学习了如何在一个新建的目录下创建Git仓库和克隆github仓库。掌握了git add命令,用于将修改的文件添加到暂存区;git commit命令将暂存区的文件提交到仓库,并附上提交说明;git log命令,用于查看提交历史记录。学习了如何创建分支以及如何合并分支到主分支的方法。并最终用git push的相关命令,用于将本地修改推送到远程仓库或从远程仓库拉取最新代码。

Binary file added 2024-finalproject/GL0752/images/图1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/GL0752/images/图2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/GL0752/images/图3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/GL0752/images/图4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/GL0752/images/图5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/GL0752/images/图6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion 2024-finalproject/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
git 学习总结

1.连接github
配置个人的用户名称和电子邮件地址,:
git config --global user.name "用户名"
Expand Down
Binary file added 2024-finalproject/Whathelp233/.DS_Store
Binary file not shown.
20 changes: 20 additions & 0 deletions 2024-finalproject/Whathelp233/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
~~很庆幸自己有充分的计算机基础,可以不至于被折磨地太惨~~
其实就现在来看,学到现在,最重要的东西大概就是要有着和计算机的思维。

~~虽然说得很抽象~~,但是其实在计算机上面的东西都是大同小异的。都是最基础的逻辑门和相似的设计语言构成了这个庞大的网。就像是编程语言和编程语言之间也有相似之处一样。这让我们只要理解了其中的一种语言,其他语言的学习成本就会直线下降。对于计算机只要理解了部份程序的设计语言,也就会降低学习其他程序的学习成本
#### 关于Linux
安装Linux是一波三折的(修了一次引导表,后面还在不断地变换方案)。
并且在安装好Linux之后就要开始学会体会命令行的力量(大雾)~~(但是近乎无限的权限真的很爽)~~
#### 关于vim
年少不知vim宝,错吧text editor当成宝
vim如果熟练之后真的好用
#### 关于 ROS
只要挂了梯子安装起来还是很轻松的。
除这个之外鱼香ROS还是很好用的)
#### 关于git
某种意义上来说第一次接触项目管理,之前还很难理解是怎么实现的。
现在明白了,能搞出这套体系的人是真的nb(大雾)




46 changes: 46 additions & 0 deletions 2024-finalproject/Whathelp233/gitUse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
1. 若你已经修改了部分文件、并且将其中的一部分加入了暂存区,应该如何回退这些修改,恢复到修改前最后一次提交的状态?给出至少两种不同的方式
ans:我们可以使用
`git restore --staged .`
`git checkout .`

或者

`git reset HEAD <file> .`
`git checkout .`
参考:
![图片](./image/q113.jpg)
![图片](./image/q12.jpg)

2. 若你已经提交了一个新版本,需要回退该版本,应该如何操作?分别给出不修改历史或修改历史的至少两种不同的方式
ans:
不修改历史(?):首先用
`git log`
查找commit号
![图片](./image/qg.jpg)
然后用基于这个版本号新建一个分支,并推送
```
git branch <new_branch_name> <commit_number>
git push <remote> <new_branch_name>
git checkout <target_branch_name>
```
修改分支:
```
git reflog
git reset --hard commit_id
git push -f
```
![图片](./image/q21.jpg)
![图片](./image/q22.jpg)
参考:
3. 我们已经知道了合并分支可以使用 merge,但这不是唯一的方法,给出至少两种不同的合并分支的方式
ans:第一个
```
git rebase <target_feature>
```
第二个:cherry-pick
```
git cherry-pick <commithash>
```
参考:
![图片](./image/q31.jpg)
![图片](./image/q32.jpg)
Binary file added 2024-finalproject/Whathelp233/image/q11.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/q112.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/q113.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/q12.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/q21.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/q22.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/q31.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/q32.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/Whathelp233/image/qg.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file.
48 changes: 48 additions & 0 deletions 2024-finalproject/ZZPeng-ROOT/Tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Final Project

## 回退修改

1. 使用```restore```命令

![Task1-1](images/task1-1.png)

2. 使用```checkout```命令

![Task1-2](images/task1-2.png)

## 回退版本

假设我们已经提交的**bd5f5c**是我们想要撤回的

![Task2-0](images/task2-0.png)

1. 使用```revert```命令

![Task2-2](images/task2-1.png)

2. 使用```reset```命令

![Task2-3](images/task2-2.png)

> [!NOTE]
>
> 需要注意的是:
>
> ```revert```会新建一个提交将之前的操作反转过来
> ```reset```则是直接将之前的提交丢弃掉
>
> ```revert```适用于之前的提交已经push的情况,```reset```适用于之前的提交还在本地,当然本地也可以使用```revert```
## 合并分支

1. 使用```rebase```命令

![Task3-1](images/task3-1.png)

2. 使用```cherry-pick```命令

![Task3-2](images/task3-2.png)

3. 当然,最常用的还是```merge```命令

![Task3-3](images/task3-3.png)
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task1-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task1-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task2-0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task2-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task2-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task3-0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task3-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task3-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/ZZPeng-ROOT/images/task3-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/lain-2/1-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2024-finalproject/lain-2/1-2.png
Binary file added 2024-finalproject/lain-2/2-1.png
Binary file added 2024-finalproject/lain-2/2-2.png
Binary file added 2024-finalproject/lain-2/3-1.png
Binary file added 2024-finalproject/lain-2/3-2.png
3 changes: 3 additions & 0 deletions 2024-finalproject/lain-2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#初学git感觉挺难的,学了一段时间后发现确实挺难的
##学会了git的基本操作如init clone branch checkout remote等等
##学习过程中参考了CSDN上资料,询问ai以及观看b站视频
6 changes: 6 additions & 0 deletions 2024-finalproject/lain-2/photo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
![alt text](1-1.png)
![alt text](1-2.png)
![alt text](2-1.png)
![alt text](2-2.png)
![alt text](3-1.png)
![alt text](3-2.png)
Binary file added 2024-finalproject/muye665/1730973551814.png
Binary file added 2024-finalproject/muye665/1730973950652.png
Binary file added 2024-finalproject/muye665/1730975404428.png
Binary file added 2024-finalproject/muye665/1730975905293.jpg
Binary file added 2024-finalproject/muye665/1730976267394.jpg
Binary file added 2024-finalproject/muye665/1730976291580.png
Binary file added 2024-finalproject/muye665/1730977416239.jpg
Binary file added 2024-finalproject/muye665/1730978038176.jpg
77 changes: 77 additions & 0 deletions 2024-finalproject/muye665/GIT application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# GIT application

## 问题一

若你已经修改了部分文件、并且将其中的一部分加入了暂存区,应该如何回退这些修改,恢复到修改前最后一次提交的状态?给出至少两种不同的方式

- **方法一**

使用 `git log` 获取上一次提交的哈希值

再使用 `git reset --hard 哈希值` 将当前分支指向上一次提交

![1730973551814](1730973551814.png)

- **方法二**

使用 `git reset HEAD` 撤销暂存区的改动

​ 再使用 `git checkout -- .` 恢复工作区到上一次提交的状态

![1730973950652](1730973950652.png)

- **方法三**

使用 `git revert` 回退版本

## 问题二

若你已经提交了一个新版本,需要回退该版本,应该如何操作?分别给出不修改历史或修改历史的至少两种不同的方式

**不修改历史记录**

- **方法一:**

使用 `git revert 哈希值` ,创建一个新提交而不改变历史记录

![4e98bb70d8bfe46544f89e7a4a7167b](4e98bb70d8bfe46544f89e7a4a7167b.png)

- **方法二:**

使用 `git checkout` 切换到之前的提交,但是会导致头指针处于分离状态

![1730975404428](1730975404428.png)

**修改历史记录**

- **方法一:**

使用 `git reset --hard 哈希值` 将HEAD指向对应的哈希值,但会舍弃对应哈希值以后的修改

![1730975905293](1730975905293.jpg)

- **方法二:**

使用`git rebase -i HEAD~n` , 打开并编辑n个提交,若要删除提交,把前面的 pick 改成 drop 即可

![1730976291580](1730976291580.png)

![1730976267394](1730976267394.jpg)


## 问题三

我们已经知道了合并分支可以使用 merge,但这不是唯一的方法,给出至少两种不同的合并分支的方式

- **方法一:**

使用 `git cherry-pick 哈希值` 可将其他分支的提交合并到当前分支上,只需要其他分支提交的哈希值即可

![1730977416239](1730977416239.jpg)

- **方法二:**

​ 使用 `git rebase 分支名` 将一个指定分支和并到当前分支上

![a](1730978038176.jpg)
129 changes: 129 additions & 0 deletions 2024-finalproject/muye665/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Learning Git

## Git 简介

git是一个版本控制的工具,可以很方便地对项目进行管理。

比如要对原项目增加新功能时,只需要新建一个分支,在分支的基础进行修改并提交即可。即使提交的有问题,也能随时回溯到之前的版本。分支的性质也极大的方便了多人同时对代码进行修改,每个人负责不同的部分,最后只需将每个人的分支合并,即可得到最后的所有修改。

## Git基本结构

### 分区

git主要分为三个区:工作区、暂存区、版本库

- 工作区:修改代码的地方
- 暂存区:工作区与提交的过渡,用于暂存工作区修改的代码,可随时提交
- 版本库:储存着当前版本和过去所有提交的记录,可随时回溯到之前的某一次提交

### 三者关系

1. **工作区 -> 暂存区**

```
git add 文件名
```

或者一次性提交所有文件:

```
git add .
```

2. **暂存区 -> 版本库**

```
git commit -m "本次提交的修改内容,要用纯英文!!!"
```

3. **版本库 -> 远程仓库(如github)**

```
git push 远程仓库名 分支名
```



## 常用命令

()内为可不加

| 作用 | 命令 |
| ------------------------ | --------------------- |
| 初始化仓库 | git init |
| 查看当前仓库状态 | git status |
| 查看历史提交日志及版本号 | git log |
| 查看所有分支(切换分支) | git checkout (分支名) |
| 将文件加入暂存区 | git add 文件名 |
| 将暂存区文件提交到版本库 | git commit |
| 克隆其他仓库 | git clone |
| 回退到某一版本 | git reset |
| 撤销某一版本提交 | git revert |



## Git与Github

github为远程仓库,可以储存项目的代码

### 连接远程仓库github

- 添加远程仓库

```
git remote add 自己指定的仓库名 ssh密匙
```

- 在github上添加本地git仓库的ssh密匙:

1. 生成密匙

```
ssh-keygen -t rsa -C "github注册的邮箱"
```
2. 在 **.ssh/** 下找到 **id_rsa.pub** ,复制密匙,粘贴到 **github->setting->New SSH Key** 里面
### 将本地内容推到github
- 推送你的新分支与数据到某个远端仓库命令:
```
git push [alias] [branch]
```
- 以上命令将你的 [branch] 分支推送成为 [alias] 远程仓库上的 [branch] 分支,实例如下。
```
$ touch runoob-test.txt # 添加文件
$ git add runoob-test.txt
$ git commit -m "添加到远程"
master 69e702d] 添加到远程
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 runoob-test.txt

$ git push origin master # 推送到 Github
```
### 将github更新拉到仓库
1、从远程仓库下载新分支与数据:
```
git fetch 远程仓库名(自己之前取的)
```
该命令执行完后需要执行 git merge 远程分支到你所在的分支。
2、从远端仓库提取数据并尝试合并到当前分支:
```
git merge 当前分支名
```
该命令就是在执行 **git fetch** 之后紧接着执行 **git merge** 远程分支到你所在的任意分支。

0 comments on commit e976b77

Please sign in to comment.