Przeglądaj źródła

整理了git的使用方法(简便使用说明书)帮助更快入门

wsw 1 rok temu
rodzic
commit
b973096b5f
1 zmienionych plików z 247 dodań i 0 usunięć
  1. 247
    0
      Git 学习笔记.md

+ 247
- 0
Git 学习笔记.md Wyświetl plik

@@ -0,0 +1,247 @@
1
+# Git 学习笔记
2
+
3
+## 一、Git 简介
4
+
5
+Git 是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。它允许团队成员在本地工作,然后将更改合并到中央仓库中,极大地提高了开发效率和协作便利性。
6
+
7
+## 二、基本概念
8
+
9
+1. ##### 仓库(Repository)
10
+
11
+   存储项目所有文件和文件夹的完整历史记录,包括每个版本的变更信息。每个项目都有一个仓库,通常在项目根目录下有一个隐藏的   .git   文件夹,里面存放着仓库的元数据。
12
+
13
+2. #####  工作区(Working Directory)
14
+
15
+   即项目文件夹,是我们进行代码编辑、添加、删除等操作的地方。工作区中的文件可以是未修改的、已修改未暂存的或已暂存的状态。
16
+
17
+3. #####  暂存区(Staging Area)
18
+
19
+   也称为索引(Index),是一个文件,保存了下次将提交到仓库中的文件列表信息。通过   git add   命令可以将工作区的文件添加到暂存区,暂存区的文件状态会被记录下来,等待提交。
20
+
21
+4. #####  提交(Commit)
22
+
23
+   将暂存区的文件提交到本地仓库的操作。每次提交都会生成一个唯一的提交 ID,记录了提交时的文件状态、提交信息(如作者、日期、描述等)。通过   git commit   命令完成提交,提交后暂存区会被清空。
24
+
25
+## 三、基本操作
26
+
27
+1. ##### 配置 Git
28
+
29
+   • 全局配置用户名和邮箱:
30
+
31
+   ~~~bash
32
+   git config --global user.name "Your Name"
33
+   
34
+   git config --global user.email "your_email@example.com"
35
+   ~~~
36
+
37
+
38
+   • 查看配置信息:
39
+
40
+   ~~~bash
41
+   git config --list
42
+   ~~~
43
+
44
+2. ##### 创建和克隆仓库
45
+
46
+  • 初始化本地仓库:
47
+
48
+  ~~~bash
49
+  cd project_folder
50
+  git init
51
+  ~~~
52
+
53
+  • 克隆远程仓库:
54
+
55
+  ~~~bash
56
+  git clone https://github.com/username/repository.git
57
+  ~~~
58
+
59
+3. ##### 添加和提交文件
60
+
61
+  • 添加文件到暂存区:
62
+
63
+  ~~~bash
64
+  git add filename
65
+  ~~~
66
+
67
+
68
+  或添加所有修改过的文件:
69
+
70
+  ~~~bash
71
+  git add .
72
+  ~~~
73
+
74
+
75
+  • 提交暂存区的文件到本地仓库:
76
+
77
+  ```bash
78
+  git commit -m "Commit message"
79
+  ```
80
+
81
+  
82
+
83
+4. ##### 查看状态和历史
84
+
85
+  • 查看工作区和暂存区的状态:
86
+
87
+  ```bash
88
+  git status
89
+  ```
90
+
91
+  • 查看提交历史:
92
+
93
+  ```bash
94
+  git log
95
+  ```
96
+
97
+  可以通过   `git log --oneline`   查看简洁的提交历史,每条提交只显示一行信息。5. 分支管理• 查看当前分支:
98
+
99
+  ```bash
100
+  git branch
101
+  ```
102
+
103
+  • 创建新分支:
104
+
105
+  ```bash
106
+  git branch branch_name
107
+  ```
108
+
109
+  • 切换分支:
110
+
111
+  ```bash
112
+  git checkout branch_name
113
+  ```
114
+
115
+  或使用   `git switch branch_name`  (Git 2.23 之后的新命令)
116
+
117
+  • 合并分支:
118
+
119
+  ```bash
120
+  git checkout target_branch
121
+  git merge source_branch
122
+  ```
123
+
124
+
125
+  将   `source_branch`   分支的更改合并到   `target_branch`   分支中6. 远程仓库操作
126
+
127
+  • 查看远程仓库信息:
128
+
129
+  ```bash
130
+  git remote -v
131
+  ```
132
+
133
+  • 添加远程仓库:
134
+
135
+  ```bash
136
+  git remote add origin https://github.com/username/repository.git
137
+  ```
138
+
139
+  • 推送本地分支到远程仓库:
140
+
141
+  ```bash
142
+  git push -u origin branch_name
143
+  ```
144
+
145
+  • 从远程仓库拉取更新:
146
+
147
+  ```bash
148
+  git pull origin branch_name
149
+  ```
150
+
151
+## 四、常用技巧
152
+
153
+1. ##### 撤销修改
154
+
155
+   • 撤销工作区的修改(未暂存的文件):
156
+
157
+   ```bash
158
+   git checkout -- filename
159
+   ```
160
+
161
+   • 撤销暂存区的修改:
162
+
163
+   ```bash
164
+   git reset HEAD filename
165
+   ```
166
+
167
+2. ##### 查看文件差异
168
+
169
+  • 查看工作区和暂存区的差异:
170
+
171
+  ```bash
172
+  git diff
173
+  ```
174
+
175
+  • 查看暂存区和本地仓库的差异:
176
+
177
+  ```bash
178
+  git diff --cached
179
+  ```
180
+
181
+3. ##### 标签管理
182
+
183
+  • 创建标签:
184
+
185
+  ```bash
186
+  git tag tag_name
187
+  ```
188
+
189
+  • 查看标签:
190
+
191
+  ~~~bash
192
+  git tag
193
+  ~~~
194
+
195
+
196
+  • 推送标签到远程仓库:
197
+
198
+  ~~~bash 
199
+  git push origin tag_name
200
+  ~~~
201
+
202
+4. ##### 忽略文件
203
+
204
+  创建   `.gitignore`   文件,在其中列出不需要被 Git 跟踪的文件或文件夹模式,例如:
205
+
206
+  ~~~cmd
207
+  #忽略所有 `.log` 文件
208
+  *.log
209
+  # 忽略 node_modules 目录
210
+  node_modules/
211
+  ~~~
212
+
213
+## 五、常见问题及解决方法
214
+
215
+1. ##### 冲突解决
216
+
217
+   当合并分支时出现冲突,Git 会在冲突文件中标记出冲突部分,需要手动编辑文件解决冲突,然后添加文件到暂存区并提交。
218
+
219
+2. ##### 忘记添加文件到暂存区就提交了
220
+
221
+   可以通过   `git commit --amend`   命令修改最后一次提交,添加遗漏的文件后再提交。
222
+
223
+3. #####  无法推送分支到远程仓库
224
+
225
+   如果远程仓库有更新,需要先拉取更新再推送,或者使用   `git push -f`   强制推送(需谨慎使用,可能会覆盖远程仓库中的更改)。
226
+
227
+## 六、进阶操作
228
+
229
+1. ##### 交互式暂存
230
+
231
+   通过   `git add -i`   命令进入交互式暂存模式,可以更精细地选择要暂存的文件或文件块。
232
+
233
+2. ##### 变基(Rebase)
234
+
235
+   将本地分支的更改重新应用到另一个分支上,使提交历史更加整洁。使用   git rebase target_branch   命令,但需注意变基可能会导致历史记录改写,尽量在未推送的本地分支上使用。
236
+
237
+3. #####  樱桃采摘(Cherry-pick)
238
+
239
+   将特定的提交从一个分支应用到另一个分支。使用   git cherry-pick commit_id   命令,适用于需要将个别重要提交迁移到其他分支的场景。
240
+
241
+## 七、资源推荐
242
+
243
+• 官方文档:https://git-scm.com/doc(详细全面,是学习 Git 的权威资料)
244
+
245
+• Pro Git 书籍:https://git-scm.com/book/zh-tw/v2(内容丰富,适合系统学习)
246
+
247
+• GitHub 学习资源:https://lab.github.com/(通过实践项目学习 Git 和 GitHub 的使用)。