同一个本地仓库怎么关联多个远程仓库
有这种情况存在吗?存在,比如我们在gitHub
作为远程仓库,然后我们也想将我们的代码存在码云上(gitee)
上,这个时候我们总不能不断地添加删除remote
吧,这个时候我们可以为我们的本地仓库定义多个远程仓库源。
回顾,我们前边是怎么为github
定义远程仓库源的?
#添加远程关联
git remote add origin git@github.com:michaelliao/learngit.git
# 删除远程关联
git remote rm origin
#查看远程信息
git remote -v
现在假如我们有两个远程仓库地址
- git@github.com:yangsong/learngit.git
- git@gitee.com:yangsong/learngit.git
我们可以分别添加两个远程仓库的地址到我们的本地仓库下
git remote rm origin
git remote add github git@github.com:michaelliao/learngit.git
git remote add gitee git@gitee.com:liaoxuefeng/learngit.git
注意: 这个时候我们的远程关联里已经没有origin
了,两个远程的关联已经换成了gitHub
和gitee
。分别对应不同的远程连接。
git push <远程关联名> 分支名
git push github master
git push gitee master
Git 配置内容
忽略提交文件:
有时候我们有些文件并不想提交到版本库去,要怎么办呢?
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
- 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
*是通配符,用于匹配一些格式的文件名。
[abcd]单选通配,里边的任意一个字符,通畅用来选择大小写[Aa][Bb]
! 反选统配,以!
开头的路劲都会被包含进去,不会被忽略
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# 忽略axoCover目录下的所有的文件,除了axoCover下的setting.json文件
例子
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
为命令设置别名
我们在最开始安装git的时候接触到第一个git的配置命令,是什么呢?
git config --global user.name "xxxx"
git config --global user.email "xxxx"
设置别名的操作也是config操作的子操作,
git config --global alias.别名 实际命令/"多命令"
注意, alias后边的点 .
多指令命令要用引号包起来
git config --global alias.st status
git st
等价 git status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.unstage 'reset HEAD'
git unstage xxx.txt
等价于 git reset HEAD xxx.txt
配置文件
配置Git的时候,加上--global
是针对所有仓库起作用的【全局】,不加只对自己当前仓库起作用【局部】。全局的配置文件,我们可以在仓库目录下找到一个隐藏的.git
的目录,里边的config
文件就是配置文件;局部配置项的配置文件,在仓库目录下的.gitconfig
文件下。
关于配置文件的级别及配置文件,可以查看【git config】