说明
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
1.常用操作
1.1.基本操作
命令 | 说明 |
---|
git init | 在现有目录中初始化仓库 | git clone git@xxxxx.cn/xxxx/project.git | 克隆现有的仓库 | git add | 跟踪新文件或把文件修改添加到暂存区(stage) | git commit -m “更新说明” | 提交更新到本地版本库 | git push origin master | 推送到远程master分支(可加-u 参数关联) | git pull origin master | 从远程仓库master分支拉取内容 | git status | 查看已暂存和未暂存的修改 | git diff | 查看已暂存和未暂存的修改 | git commit --amend | 修改最后一次提交的commit | git rm -r --cached logs | 移除 logs 目录的版本控制,--cached 只去除版本控制而不删除本地文件 | git config --global user.name “yourname” | 设置用户名 | git config --global user.email “youremail” | 设置邮箱 | git config --list | 查看配置信息 |
1.2.分支管理
命令 | 说明 |
---|
git merge --no-ff develop | 合并develop分支到当前分支 --no-ff不使用fast-forward方式合并,保留分支的commit历史 | git merge --no-ff origin/develop | 合并远程develop分支到当前分支 | git branch | 查看分支(-a 参数可查看远程分支) | git checkout -b develop | 创建并切换到develop | git checkout develop | 切换到develop分支 | git branch -d develop | 删除本地develop分支 | git push origin --delete develop | 删除远程develop分支 |
1.3.标签管理
命令 | 说明 |
---|
git tag | 列出标签 | git tag -l “v1.8.5*” | 按照特定的模式查找标签 | git tag v1.4 | 创建一个轻量标签 | git tag -a v1.4 -m “my version 1.4” | 创建一个附注标签 | git show v1.4 | 查看标签信息和与之对应的提交信息 | git tag -a v1.2 9fceb02 | 给过去的提交补打标签 | git push origin v1.4 | 将v1.4标签推送到远程服务器 | git push origin --tags | 将所有标签推送到远程服务器 | git tag -d v1.4 | 删除本地的v1.4标签 | git push origin --delete v1.4 | 删除远程服务器的v1.4标签 |
2.Windows配置别名
配置文件路径: C:\Program Files\Git\etc\profile.d\aliases.sh
Git配置别名通常有两种方式:命令行配置和配置文件配置别名。
2.1.命令行配置别名
git config --global alias.st status
这个命令就相当于把status简化为st。 以后就可以使用 git st 查看。
2.2.配置文件配置别名
git配置又分为两种:
? 局部的配置:每个仓库内部的配置文件,基本都放在项目根目录.git/config文件中。
? 全局的配置: 当前用户目录下有一个全局的git配置文件.gitconfig。例如: C:\Users\Administrator\.gitconfig
参考配置如下:
[alias]
st = status
[user]
name = xxxx
email = xxxxx@qq.com
[push]
default = matching
如果想要增加别名,就可以在[alias]下边添加,一行对应一个别名。
2.3.常用别名配置
[alias]
st = status
cm = commit -m
ck = checkout
cb = checkout -b
ba = branch -a
br = branch
bd = branch -D
pbd = push origin --delete
mg = merge --no-ff -m
clog = log --graph --pretty=oneline --abbrev-commit
po = push origin
pl = pull origin
pm = pull origin master
pts = push --tags
rp = remote prune origin
2.4.自定义样式
通过定义git log 的别名设置自定义样式,示例如下:
// git lg
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev-commit"
以后直接输入 git lg 就行了。其实就是添加到了全局的配置文件中。
自2017-01-01号以来的代码提交行数:
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since='2017-01-01' --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
自2017-01-01号以来的提交次数:
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --no-merges --since='2017-01-01' | grep -e 'commit [a-zA-Z0-9]*' | wc -l;done
3. 配置用户
3.1.设置用户名和邮箱
git config --global user.name "git用户名"
git config --global user.email "git邮箱"
注意:也可以通过修改配置文件~/.gitconfig 来实现。
3.2.生成密钥
根据用户名、邮箱生成密钥,注意这里的邮箱一定要是git账户对应的邮箱。
ssh-keygen -t rsa -C "git邮箱"
3.3.复制秘钥到gitlab
查看生成的秘钥,进入GitLab的个人页面,将复制的公钥添加入自己的SSH秘钥。
cat ~/.ssh/id_rsa.pub
4.多用户设置
这里假设有两个用户zq1 和zq2 ,分别对应两个不同的gitlab服务器,当然也可以是一个gitlab服务器上的两个不同用户。
4.1.创建config文件
vim ~/.ssh/config
编写内容
Host gitServer_1
User zq1
Hostname 192.168.8.100
IdentityFile '~/.ssh/keys/ed25519_1'
Port 22
Host gitServer_2
User zq2
Hostname 192.168.8.101
IdentityFile '~/.ssh/keys/ed25519_2'
Port 22
注意:
Host:每个SSH连接的单独代号
User: 对应的用户名
IdentityFile:告诉SSH连接对应的私钥
Port:对应的端口
4.2.测试连接
ssh -T zq1@gitServer_1
4.3.使用Git 下载对应项目
git clone zq1@gitServer_1:/myproject
4.4.设置当前项目的用户名和邮箱
cd myproject
git config user.name "you name"
git config user.email "you email"
git config --list
5.总结
看起来挺繁琐,其实git使用起来并不是很难,大家实际操作几遍就会了。
|