Git的使用流程

本文主要记录一些使用 Git 进行版本管理的流程和命令。

概念建立

1 工作区: 代码所在的文件路径
2 暂存区: 使用 git add <filename>,将文件 添加进 暂存区,待后续操作。
3 本地仓库: 使用 git commit -m "comments here" 将 暂存区的所有文件 commit 到本地仓库,本地仓库位于本机。
4 远程仓库: 在服务器端运行,可将本地仓库内容通过 git push 推送到远程仓库。


本地仓库和远程仓库的创建

1. 添加远程库

为了方便管理,创建 git 用户.
在远程服务器上安装好 git 后,使用以下命令创建远程仓库

1
2
3
mkdir example.git
cd example.git
git --bare init

chown -R git:git example.gitexample.git 的所有者和群组改为 git.

2. 添加本地仓库

若已经拥有了远程仓库,可以通过 git clone <example.git> 的命令将远程仓库 clone 到本地。
若是对已存在的工程添加 git 管理,则在工程目录下,使用 git init 命令将其变成 git 管理的仓库。


常用的 git 流程

创建好本地仓库和远程仓库后,就可以使用 git 进行版本控制了。
若是对已存在的工程进行操作,则流程如下:

1  使用 git add 的方式将文件添加到暂存区。若某工程第一次使用 git,用 git add . 将工程目录下的所有文件添加到暂存区。此操作可以在 Git bash 中通过命令行操作,或者在 Git GUI 通过图形界面操作。


2  若已在暂存区中添加了一些文件,可以通过 git commit -m "comments here" 将暂存区中所有文件 commit 到本地仓库的当前分支。


3  若要将本地的当前分支,如 master 分支推送到远程仓库的 master 分支,则使用 git push 命令。

注意: 应先将本地仓库与远程仓库关联,在本地 example 工程下,使用语句 git remote add origin git@10.167.93.74:/path/to/example.git. 这样,就将 10.167.93.74:/path/to/example.git 与本地 example 仓库关联上了。添加后,远程库的名字就是 origin,这是 Git 默认的叫法,也可以改成别的,但是 origin 这个名字一看就知道是远程库。


关联后,使用命令 git push -u origin master 第一次推送 master 分支的所有内容;


此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master 推送最新修改;

注意: 若不想将工程路径下的所有文件添加版本管理,则可以只将部分文件进行 add, 对从未进行过 add 操作的文件,将被视作 untracked.


4  若对已经被 Git 管理的多个文件在某次 commit 后进行了修改,想将这些文件一次性进行 add,可以使用命令 git add -u. 这样,就不会将那些 untracked 的文件添加进暂存区 (git 术语为进行 stage). 若使用 git add . 命令,将会提交 新文件 (new) 和 被修改 (modified) 文件,这时,那些 untracked 的文件会被看作 新文件

Git add 命令的 3 种用法:

1
2
3
git add .  : 监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改 (modified) 以及新文件 (new),但不包括被删除的文件。
git add -u : 仅监控已经被 add 的文件(即 tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update 的缩写)
git add -A : 上面两个功能的合集(git add --all 的缩写)

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial

echo OK >> change-me
rm delete-me
echo Add me > add-me

git status
# Changed but not updated:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me

git add .
git status

# Changes to be committed:
# new file: add-me
# modified: change-me
# Changed but not updated:
# deleted: delete-me

git reset

git add -u
git status

# Changes to be committed:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me

git reset

git add -A
git status

# Changes to be committed:
# new file: add-me
# modified: change-me
# deleted: delete-me

参考


常用 Git 命令

1
2
3
4
5
6
git add
git commit
git status
git log
git push <remote> <local branch name>:<remote branch to push into>
git log --graph #查看树状图

常用 Git 工具

· Git Bash
· Git GUI
· Pycharm 上的 Git


教程

Git教程-廖雪峰


文章作者: taosean
文章链接: https://taosean.github.io/2019/05/31/Git-Usage/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 taosean's 学习之旅