Skip to content

Commit fa71ba2

Browse files
committed
feat: lession2
1 parent 4444e69 commit fa71ba2

2 files changed

Lines changed: 272 additions & 0 deletions

File tree

232 KB
Loading

assignments/lesson2/livstyle.md

Lines changed: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
# Git工具安装与使用报告
2+
3+
## 学员GitHub用户名: livstyle
4+
5+
## 1. Git安装过程
6+
7+
### 操作系统环境
8+
- **操作系统**: Windows 10 (版本 10.0.26100)
9+
- **安装方式**: 从Git官方网站下载Windows安装程序
10+
11+
### 安装步骤
12+
1. 访问Git官方网站 https://git-scm.com/downloads
13+
2. 下载适用于Windows的最新版本Git安装程序
14+
3. 运行安装程序,按照以下配置进行安装:
15+
- 选择默认编辑器(推荐使用VS Code或其他常用编辑器)
16+
- 选择"Git from the command line and also from 3rd-party software"以便在命令行和其他工具中使用Git
17+
- 选择"Use the OpenSSL library"作为HTTPS传输后端
18+
- 配置行尾转换:选择"Checkout Windows-style, commit Unix-style line endings"
19+
- 选择终端模拟器:使用MinTTY(默认终端)
20+
- 配置额外选项:启用文件系统缓存和Git Credential Manager
21+
4. 完成安装,点击Finish
22+
23+
### 验证安装
24+
安装完成后,打开PowerShell或命令提示符,执行以下命令验证安装:
25+
```bash
26+
git --version
27+
```
28+
29+
## 2. 遇到的问题及解决方法
30+
31+
### 问题1:中文乱码问题
32+
**问题描述**: 在Windows系统的命令行中,Git命令输出中文时出现乱码。
33+
34+
**解决方法**:
35+
```bash
36+
# 设置Git使用UTF-8编码
37+
git config --global core.quotepath false
38+
git config --global gui.encoding utf-8
39+
git config --global i18n.commit.encoding utf-8
40+
git config --global i18n.logoutputencoding utf-8
41+
```
42+
43+
### 问题2:首次配置用户信息
44+
**问题描述**: 首次使用Git需要配置用户名和邮箱。
45+
46+
**解决方法**:
47+
```bash
48+
# 配置全局用户名
49+
git config --global user.name "livstyle"
50+
51+
# 配置全局邮箱
52+
git config --global user.email "your-email@example.com"
53+
54+
# 查看配置
55+
git config --global --list
56+
```
57+
58+
### 问题3:SSH密钥配置
59+
**问题描述**: 为了安全便捷地与GitHub交互,需要配置SSH密钥。
60+
61+
**解决方法**:
62+
```bash
63+
# 生成SSH密钥
64+
ssh-keygen -t ed25519 -C "your-email@example.com"
65+
66+
# 启动ssh-agent
67+
eval "$(ssh-agent -s)"
68+
69+
# 添加SSH私钥
70+
ssh-add ~/.ssh/id_ed25519
71+
72+
# 复制公钥内容并添加到GitHub账户
73+
cat ~/.ssh/id_ed25519.pub
74+
```
75+
然后在GitHub网站上:Settings → SSH and GPG keys → New SSH key,粘贴公钥内容。
76+
77+
## 3. 版本信息截图
78+
79+
通过执行 `git --version` 命令查看Git版本信息:
80+
81+
![Git版本信息](git-version.png)
82+
83+
从截图可以看到,当前安装的Git版本信息已成功显示。
84+
85+
## 4. Git命令使用过程总结
86+
87+
### 4.1 克隆远程仓库
88+
首先,我从GitHub上fork了 `upstreamlabs/github101` 仓库到我的个人账号下,然后使用以下命令克隆到本地:
89+
90+
```bash
91+
# 克隆远程仓库到本地
92+
git clone https://github.com/livstyle/github101.git
93+
94+
# 或者使用SSH方式(推荐)
95+
git clone git@github.com:livstyle/github101.git
96+
97+
# 进入项目目录
98+
cd github101
99+
```
100+
101+
**命令说明**: `git clone` 命令用于将远程仓库完整地下载到本地,包括所有历史提交记录。
102+
103+
### 4.2 查看仓库状态
104+
```bash
105+
# 查看当前工作区状态
106+
git status
107+
108+
# 查看简洁状态
109+
git status -s
110+
```
111+
112+
**命令说明**: `git status` 显示工作区和暂存区的状态,可以看到哪些文件被修改、哪些文件待提交。
113+
114+
### 4.3 添加文件到暂存区
115+
```bash
116+
# 添加指定文件到暂存区
117+
git add assignments/lesson2/livstyle.md
118+
119+
# 添加所有修改的文件
120+
git add .
121+
122+
# 添加所有指定类型的文件
123+
git add *.md
124+
```
125+
126+
**命令说明**: `git add` 将工作区的修改添加到暂存区,为下一次提交做准备。
127+
128+
### 4.4 提交更改到本地仓库
129+
```bash
130+
# 提交暂存区的内容到本地仓库
131+
git commit -m "完成第二课作业:Git工具安装与实践报告"
132+
133+
# 修改上一次提交(未push的情况下)
134+
git commit --amend -m "更新提交信息"
135+
136+
# 查看提交历史
137+
git log
138+
git log --oneline --graph --all
139+
```
140+
141+
**命令说明**: `git commit` 将暂存区的内容正式提交到本地仓库,`-m` 参数后跟提交信息,描述本次修改的内容。
142+
143+
### 4.5 推送到远程仓库
144+
```bash
145+
# 推送到远程仓库的main分支
146+
git push origin main
147+
148+
# 首次推送并设置上游分支
149+
git push -u origin main
150+
151+
# 强制推送(谨慎使用)
152+
git push -f origin main
153+
```
154+
155+
**命令说明**: `git push` 将本地仓库的提交推送到远程仓库,使远程仓库与本地保持同步。
156+
157+
### 4.6 拉取远程更新
158+
```bash
159+
# 拉取远程仓库的最新更改并合并
160+
git pull origin main
161+
162+
# 获取远程更新但不合并
163+
git fetch origin
164+
```
165+
166+
**命令说明**: `git pull` 相当于 `git fetch` + `git merge`,用于获取远程仓库的最新内容并合并到当前分支。
167+
168+
### 4.7 分支管理
169+
```bash
170+
# 查看所有分支
171+
git branch -a
172+
173+
# 创建新分支
174+
git branch feature-branch
175+
176+
# 切换分支
177+
git checkout feature-branch
178+
179+
# 创建并切换到新分支
180+
git checkout -b feature-branch
181+
182+
# 合并分支
183+
git merge feature-branch
184+
185+
# 删除分支
186+
git branch -d feature-branch
187+
```
188+
189+
**命令说明**: Git的分支功能非常强大,可以在不影响主分支的情况下进行功能开发和测试。
190+
191+
### 4.8 查看差异
192+
```bash
193+
# 查看工作区与暂存区的差异
194+
git diff
195+
196+
# 查看暂存区与最后一次提交的差异
197+
git diff --cached
198+
199+
# 查看两个提交之间的差异
200+
git diff commit1 commit2
201+
```
202+
203+
### 4.9 远程仓库管理
204+
```bash
205+
# 查看远程仓库信息
206+
git remote -v
207+
208+
# 添加远程仓库(添加上游仓库)
209+
git remote add upstream https://github.com/upstreamlabs/github101.git
210+
211+
# 从上游仓库拉取更新
212+
git fetch upstream
213+
git merge upstream/main
214+
```
215+
216+
**命令说明**: 当fork仓库后,可以添加原始仓库作为上游remote,方便同步最新的更改。
217+
218+
### 4.10 撤销操作
219+
```bash
220+
# 撤销工作区的修改
221+
git checkout -- filename
222+
223+
# 取消暂存
224+
git reset HEAD filename
225+
226+
# 回退到指定提交
227+
git reset --soft HEAD^ # 保留更改
228+
git reset --hard HEAD^ # 丢弃更改
229+
```
230+
231+
## 5. 学习心得与体会
232+
233+
通过本次Git工具的安装和实践,我对版本控制系统有了更深入的理解:
234+
235+
1. **版本控制的重要性**: Git可以记录项目的每一次修改,方便回溯历史和协作开发。
236+
237+
2. **分布式特性**: Git是分布式版本控制系统,每个开发者都有完整的代码库,即使离线也能继续工作。
238+
239+
3. **工作流程清晰**: 工作区 → 暂存区 → 本地仓库 → 远程仓库的流程设计合理,既保证了灵活性,又提供了安全性。
240+
241+
4. **分支管理强大**: 分支功能让并行开发变得简单,可以在不同分支上进行不同的功能开发,互不影响。
242+
243+
5. **协作开发便利**: 通过fork、clone、pull request等机制,可以方便地参与开源项目和团队协作。
244+
245+
6. **需要持续学习**: Git命令众多,功能强大,需要在实践中不断学习和掌握更多高级用法。
246+
247+
## 6. 提交PR的完整流程
248+
249+
### 第一次提交
250+
1. Fork远程仓库到个人账号
251+
2. Clone个人仓库到本地
252+
3. 创建并编辑 `assignments/lesson2/livstyle.md` 文件
253+
4. 执行以下Git命令:
254+
```bash
255+
git add assignments/lesson2/livstyle.md
256+
git commit -m "添加lesson2作业:Git工具安装与实践"
257+
git push origin main
258+
```
259+
5. 在GitHub上向上游仓库提交Pull Request
260+
261+
### 第二次提交(补充命令总结)
262+
1. 完善第4部分"Git命令使用过程总结"
263+
2. 执行以下Git命令:
264+
```bash
265+
git add assignments/lesson2/livstyle.md
266+
git commit -m "完善lesson2作业:补充Git命令使用总结"
267+
git push origin main
268+
```
269+
3. 再次向上游仓库提交Pull Request或更新现有PR
270+
271+
通过这个完整的流程,我深刻体会到了Git在实际项目中的应用价值,为后续的开源协作打下了坚实的基础。
272+

0 commit comments

Comments
 (0)