git 常用命令
TIP
This is a tip
git rm
- 删除
暂存区
或分支
上的文件, 同时工作区也 不需要 这个文件了
git rm file_path
1
- 删除
暂存区
或分支
上的文件, 但本地又 需要使用 , 只是不希望这个文件被版本控制
git rm --cached file_path
1
git clone
# 本地
git clone ssh://username@domain.com:port/home/username/dev/go/src/github.com/xxx/blog
git clone $GOPATH/src/github.com/ttchan/blog
# ssh
git clone ssh://git@homeserver/nas/git/blog.git blog
git remote add home ssh://git@domain.com:port/nas/git/blog.git
1
2
3
4
5
6
2
3
4
5
6
删除分支
# Method 1
# ensure debug is not the defualt branch
git push origin :debug
# Method 2
git push origin --delete debug
1
2
3
4
5
2
3
4
5
git 信息
# 获取当前分支名:
$ git rev-parse --abbrev-ref HEAD
#获取当前hash值
$ git rev-parse HEAD
# 获取短的
$ git rev-parse --short HEAD
git log -1 --format="%h"
# date ISO 8601-like
git log -1 --format="%ai"
git show --format="%h%n%ai" -q --encoding=UTF-8
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
git tag
- 查看tag
git tag
# 通配符查看
git tag -l "v1.0*"
1
2
3
2
3
- 添加标签
git tag v1.0.0
# 给指定9fceb02添加标签
git tag -a v1.0.1 9fceb02
# 添加标签并增加附注
git tag -a v1.4 -m "my version 1.4"
1
2
3
4
5
2
3
4
5
- 推送标签
git push origin v1.5
# 一次性推送很多标签
git push --tags
1
2
3
2
3
- 删除标签
# 删除本地
git tag -d v1.4-lw
#删除远程标签
git push origin --delete <tagname>
1
2
3
4
2
3
4
git init --bare
建立本地仓库
- 创建用户
useradd -d /nas/git -m git -s /usr/bin/git-shell
# -d 指定目录
# -m 用户名
# -s 指定shell
# -g 指定用户组
# -G 附加用户组
1
2
3
4
5
6
2
3
4
5
6
- 创建密码
passwd git
1
- 建立仓库
su git
cd /nas/git
mkdir blog.git
cd blog.git
# 使用--bare参数初始化为裸仓库,这样创建的仓库不包含工作区
git init --bare
1
2
3
4
5
6
2
3
4
5
6
- 权限
cd ..
# 如果权限有问题执行
sudo chown git:git -R blog.git
ls -l |grep blog.git
drwxr-xr-x 7 git git 4096 Aug 28 23:48 blog.git
ls -l blog.git
drwxr-xr-x 2 git git 4096 Aug 28 23:48 branches
-rw-r--r-- 1 git git 66 Aug 28 23:48 config
-rw-r--r-- 1 git git 73 Aug 28 23:48 description
-rw-r--r-- 1 git git 23 Aug 28 23:48 HEAD
drwxr-xr-x 2 git git 4096 Aug 28 23:48 hooks
drwxr-xr-x 2 git git 4096 Aug 28 23:48 info
drwxr-xr-x 4 git git 4096 Aug 28 23:48 objects
drwxr-xr-x 4 git git 4096 Aug 28 23:48 refs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
git checkout
空分支
git checkout --orphan server
git rm -rf .
mkdir -p static/{js,css,img} tmpl
tree
# .
# ├── static
# │ ├── css
# │ ├── img
# │ └── js
# └── tmpl
# 空文件夹不能跟踪和提交成功
touch README.md
git add .
git commit -m "create blank branch for server"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
git rebase
# -i 交互式
# 初始状态开始修改
git rebase -i --root
# 任意hash开始
git rebase -i hash
# squash s 合并上一次提交
# fixup 和s类似,使用上次提交的msg
# r 仅修改commit msg
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8