作为IT领域的基础工具git是每一位开发人员都必备的技能。而对于运维人员来说,该项技能也依然特别重要,特别是那些从纯运维转到运维开发的人。当多人多团队共同按照标准流程体系去维护项目时,对于git要求还是有一定门槛的。不论是个人还是团队的项目管理,我都建议大家去探索下Git,也许在未来的未来,会给你一个惊喜。
我常用的git仓库
基本操作
# 克隆代码
git clone https://github.com/tesseract-ocr/tesseract.git
# 本地代码和远程建立关联
git remote add bgbiao https://github.com/tesseract-ocr/tesseract.git
# 添加本地代码到本地代码库
git add *
# 提交本地代码到本地仓库
git commit -a -m "some descriptions"
# 提交更新(将本地当前分支代码提交到远程bgbiao关联的远程分支的master分支)
$ git push -u bgbiao master
git remote 操作
主要用来对远程仓库进行相关的操作
# 查看远程仓库
$ git remote -v
origin https://github.com/xxbandy/mydocker.git (fetch)
origin https://github.com/xxbandy/mydocker.git (push)
# 其实这里又涉及到了fetch操作(git fetch其实就是下载远程的仓库,git clone已经下载了)
# 指定参数进行添加远程仓库
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>
# 重命名远程仓库
git remote rename <old> <new>
# 删除远程仓库
git remote remove <name>
git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
git remote set-branches [--add] <name> <branch>…
# 修改远程仓库
git remote set-url [--push] <name> <newurl> [<oldurl>]
git remote set-url --add [--push] <name> <newurl>
git remote set-url --delete [--push] <name> <url>
git remote prune [-n | --dry-run] <name>…
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
git branch 分支操作
# git branch (本地分支)
$ git branch
* biaoge
master
# git branch -r (查看远程分支)
$ git branch -r
origin/HEAD -> origin/master
origin/ansible
origin/master
xuxuebiao/master
# 列出所有本地和远程的分支
$ git branch -a
* biaoge
master
remotes/origin/3.04
remotes/origin/3.05
remotes/origin/HEAD -> origin/master
remotes/origin/hfst-dawg-type
remotes/origin/master
remotes/origin/ocricola-cleanup
# 创建本地分支(不会切换到新分支,需要checkout切换)
$ git branch biaogev2
# 切换分支
$ git checkout biaogev2
# 创建并切换分支
$ git checkout -b biaogev3
# 根据某个分支完整创建新分支并切换(v1.11为源项目的已有分支)
$ git checkout -b biaogev4 v1.11
# 删除分支
$ git branch -d biaogev3
# 合并分支(将name的分支合并到当前分支)
$ git merge name
# 创建远程分支(将当前分支提交到远程的bgbiaov1分支)
$ git push bgbiao bgbiaov1
# 指定本地分支进行提交(将本地bgbiaov2分支提交到远程master和v2分支)
$ git push bgbiao bgbiaov2:master
$ git push bgbiao bgbiaov2:v2
# 删除远程分支
$ git push bgbiao :v2
# 更新远程分支到本地某个分支(将remote xuxuebiao中的biaoge分支pull到本地)
$ git pull xuxuebiao biaoge:biaoge
git tag 标签操作
注意:如果想要对某个tag的代码进行编辑修改,需要创建指定tag的一个分支
# 查看分支tag标签
# git tag
1.03
1.04
1.04b
2.00
2.01
2.02
2.03
2.04
3.00
3.01
3.02.02
3.03-rc1
3.04-rc1
3.04.00
3.04.01
3.04.01dev
3.05.00
3.05.00dev
3.05.01
4.00.00alpha
4.00.00dev
# 创建版本
$ git tag v0.11
# 删除版本
$ git tag -d v0.10
# 创建远程版本(本地版本push到远程)
$ git push origin v0.11
# 删除远程版本
$ git push origin :refs/tags/v0.11
git config操作
代码仓库配置管理
# 查看当前基础配置
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://github.com/xxbandy/mydocker.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "v2"]
remote = origin
merge = refs/heads/sdk-v1
# 查看当前配置信息(默认查看当前--local,使用--system或者--global查看系统和全局设置)
$ git config -l
# 修改相关配置
# git config [--local|--global|--system] -e
$ git config --local --add user.name "username"
$ git config --local --add user.email "email"
# 获取相关配置文件
$ git config --local --get user.name
# 查看当前v2分支合并的分支
$ git config --get branch.v2.merge
refs/heads/sdk-v1
# 删除配置项
$ git config --local --unset user.name
# 增加认证存储
$ git config --local credential.helper store
$ cat ~/.git-credentials
http://username:password@giturl
# 增加多个认证用户
$ git config credential.https://github.com.username xxbandy
$ git config credential.https://git.oschina.net.username Andy_xu
注意:增加了认证存储和认证用户后以后就不需要进行用户名和密码验证了.但是这种方式毕竟也是将密码用明文写在一定地方,因此要首先保证计算机的物理安全
常用示例
$ mkdir project.git
$ cd project.git
$ git init
$ git remote add -f -t master -m master origin git://example.com/git.git/
$ git merge origin
注意:如果push过程中发现有大文件拒绝,临时的方法如下:
# 只Reset最后一次commit
git reset --mixed HEAD^
如果必须上传大文件,可以使用git lfs
网友评论