Git 版本控制

Git 版本控制

版本控制

本地版本控制

只对本地的文件进行版本控制

集中式

代表性的是 SVN ,代码文件存放在中央服务器

分布式

目前代表性的是 Git ,每个人都有代码副本。Git 的创始人是 Linus ,都用 Linux 了,何不再试试 Git 呢?而且,Fuck you, Nvida ! 如果不想敲命令了,还有GUI可以用。

Git文档

安装

Window:下载官网的包。或者镜像下载。

Linux:

1
2
3
4
5
6
7
8
9
10
11
sudo apt install git-all		
#安装git建议的包以及依赖项,如git-doc, git-gui, gitk, gitweb等等
sudo apt install git #最小安装
# 或者编译安装
wget heeps://github.com/git/git/archive/v2.xx.x.tar.gz
tar -xvf v2.xx.x.tar.gz
cd git-2.xx.x
make prefix=/usr/local/git install #安装git至路径
vim /etc/profile
PATH=$PATH:/usr/local/git/bin
export PATH #编辑环境变量

初始配置

git自带git config对git外观和行为配置。一共有三重配置信息。

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果在执行 git config 时带上 --system 选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。)
  2. ~/.gitconfig~/.config/git/config 文件:只针对当前用户。 你可以传递 --global 选项让 Git 读写此文件,这会对你系统上所有的仓库生效。
  3. 当前使用仓库的 Git 目录中的 config 文件(即 .git/config):针对该仓库。 你可以传递 --local 选项让 Git 强制读写此文件,虽然默认情况下用的就是它。(当然,你需要进入某个 Git 仓库中才能让该选项生效。)

安装完成后,首先有完成用户名和邮箱地址设置

1
2
3
4
5
git config --global user.name "name"
git config --global user.email email@example.com

git config --list #检查git的配置
git config <key> #检查某一项配置

常用命令

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
git init					
#初始化git仓库
git clone /path/to/repo
#克隆本地仓库
git clone username@host:/path/to/repo
#克隆远端仓库
git add <filename>
#提出更改,添加到暂存区
git commit -m "代码提交信息"
#提交到HEAD
git push oringin master
#推送到远端仓库,master分支
git push --set-upstream origin main
git remote add oringin <server>
#链接到远程服务器
git pull
#更新本地,并合并远端改动
git merge <branch>
#合并分支到当前分支,手动处理冲突使用add
git diff <sourc_brach> <target_branch>
#查看差异
git tag <tag_name> <id>
#创建标签
git log
#获取提交ID
git checkout -- <filename>
#当前操作有误时,将HEAD内容替换到工作目录中
git branch (branchname)
#创建分支
git checkout <branch>
#切换分支
git fetch oringin
git reset --hard oringin/master
#以上为丢弃本地改动,获取新版,并将本地主分支指向新版本

概念

工作流

工作目录、暂存区、HEAD

分支

冲突处理

tips

1
2
gitk			#内置图形化git
git config corlor.ui true #彩色输出
作者

ivy

发布于

2021-06-02

更新于

2023-03-25

许可协议

CC BY-NC-SA 4.0

评论