git-doc-搭建和使用

安装

1
yum -y install git-core

命令

git config

默认信息设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 配置提交者户名
git config --global user.name 用户名

# 配置提交者邮件
git config --global user.email 邮件

# 提交文件过大设置
git config --global http.postBuffer 1048576000

# 大小写敏感
git config --global core.ignorecase false

# 账号缓存
git config --global credential.helper store

# 清掉账号缓存
git config --global credential.helper wincred

git init

初始化本地仓库

1
2
3
4
5
6
7
git init [指定的目录名称]

# 初始化当前目录为git本地仓库
git init

#初始化指定目录为git本地仓库
git init config

git status

查看改动信息

1
git status [-s]

git diff

详细查看当前的改动信息

1
2
3
4
5
6
7
8
9
10
11
# 尚未缓存的改动
git diff

# 查看已缓存的改动
git diff --cached

# 查看已缓存的与未缓存的所有改动
git diff HEAD

# 显示改动的位置
git diff --stat

git add

缓存改动到版本控制

1
2
3
4
5
6
7
8
9
10
git add <文件夹|文件筛选格式>

# 把当前目录下所有改动加到缓存
git add .

# 把指定格式文件改动加到缓存
git add *.c

# 把指定文件的改动加到缓存
git add README

git rm

删除文件或缓存

1
2
3
4
5
6
7
8
9
10
11
# 简单删除文件
git rm 文件名称

# 删除已经添加到缓存的文件
git rm -f 文件名称

# 删除文件夹
git rm -r 文件夹/

# 只想删除文件的改动的缓存信息
git rm --cached 文件名称

git mv

移动和重命名一个文件、目录

1
git mv [旧的的文件名|旧的目录名] [新的文件名|新的目录名]

git commit

将add内容提交到本地仓库

1
2
3
4
5
6
7
git commit -m <日志>

# 提交改动缓存到本地仓库:
git commit -m "测试git"

# 空内容
git commit --allow-empty -m "测试git"

git clone

git仓库拷贝到本地

1
2
3
4
5
6
7
git clone <仓库路径> [指定的路径]

# 从git仓库中拷贝项目到当前目录
git clone https://github.com/linchunbogit/testgit.git

# 从git仓库中拷贝项目到指定目录
git clone https://github.com/linchunbogit/testgit.git testDir

git reset

取消本地仓库缓存

1
2
3
4
5
6
7
8
9
10
11
# 清除当前改动的缓存
git reset HEAD

# 切换到前一个版本
git reset --hard HEAD^

# 切换到前100个版本
git reset --hard HEAD~100

# 切换到指定的版本
git reset --hard 版本号

git branch

分支管理

1
2
3
4
5
6
7
8
9
10
11
# 列出所有分支
git branch

# 创建分支
git branch 分支名

# 删除分支,只会删除本地
git branch -d 分支名

# 删除远程分支
git push origin --delete branch

git checkout

分支切换

1
2
3
4
5
6
7
8
# 切换到指定分支
git checkout 已经存在的分支名称

# 创建切切换到分支
git checkout -b 不存在的分支名

# 还原文件
git checkout 文件名称 (要输入2次)

git merge

分支合并

1
2
# 把指定分支合并到当前分支上
git merge 分支名称

git log

日志查看

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
# 查看提交日志
git log

# 查看前几个日志
git log -数量

# 简洁的方式查看日志
git log --oneline

# 拓扑图形式查看日志
git log --graph

# 查看指定用户的提交日志
git log --author=用户名

# 查看指定日期的提交日志
git log --oneline --before={3.weeks.ago} --after={2010-04-18}

# 查看日志的标签
git log --decorate

# 显示已修改的文件清单。
git log --name-only

# 显示新增、修改、删除的文件清单。
git log --name-status

git tag

提交记录上标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看所有的标签
git tag

# 查看标签与特定分支的关系
git show-ref --tags

# 给版本上标签
git tag -a v1.0

# 给老版本追加标签
git tag -a v1.2 版本号

# 给标签加信息
git tag -a 标签名称 -m 信息

# 提交标签到远端
git push origin 标签名称

# 拉取远端所有的标签到本地
git fetch --tags

git clean

清理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒
git clean -n

# 删除当前目录下所有没有track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过
git clean -f

# 删除指定路径下的没有被track过的文件
git clean -f <path>

# 删除当前目录下没有被track过的文件和文件夹
git clean -df

# 删除指定路径下所有新增文件
git clean -xdf <path>

git cherry-pick

相比较于merge,cherry-pick只合并指定的commit,不会将该commit之前的所有内容都合并。

1
2
3
4
5
# 只合并某一次commit
git cherry-pick commit-sha-id

# 合并多个commit
git cherry-pick commit-sha-id1 commit-sha-id2

git update-index

1
2
3
4
5
6
7
8
9
10
11
# 忽略指定文件的改动跟踪
git update-index -–assume-unchanged /aa.text

# 恢复指定文件的改动跟踪
git update-index -–no-assume-unchanged /aa.text

# 查看所有忽略改动跟踪的文件
git ls-files -v | grep '^h\ '

# 恢复所有的忽略跟踪文件
git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged

常用

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 pull

# 上传代码
git push

# 清理当前操作
git checkout ./

# 还原重置
git reset HEAD^ --hard
git checkout ./

# 删除本地分支
git branch -d 分支名

# 删除远程分支
git push origin --delete 分支名

# 当前本地已拉取分支查看
git branch

# 所有分支查看
git branch -a

# 合并master的 7c8f33a432012931aec5d500c065decaf8ee5aa2 到分支 branch1
git checkout branch1
git cherry-pick 7c8f33a432012931aec5d500c065decaf8ee5aa2
git push

# 迁移gitlab的项目到别的服务器
git clone --bare http://xxxxx1/xxxx.git
cd xxxx.git
git push --mirror http://xxxxx2/xxxx.git

操作

补丁

打补丁

打补丁

代理

1
2
3
4
5
6
7
8
9
10
# 查看代理设置
git config --global http.proxy
git config --global https.proxy

# 还原代理
git config --global --unset http.proxy
git config --global --unset https.proxy

# 设置代理
git config --global http.proxy http://[proxy_address]:[proxy_port]

链接

git命令查阅