>[info] git在灵活性在于我们工作是始终在本地的版本库中工作的,工作完后只需要将本地仓库与远程仓库同步,来达到共享代码的目的。
所以远程仓库和本地仓库的关联关系就很重要了。
还记的【建立版本库】章节中讲的创建版本库中的这个命令吗:
~~~
$ git remote add origin git@github.com:xiasf/github-note.git
~~~
~~~
git remote add origin [SSH|URL] // 为远程仓库设置别名为"origin"
~~~
其实这个命令是为远程仓库设置别名的,所以后面才这样使用:
~~~
git push -u origin master // 推送(本地当前分支)到远程仓库的master分支
~~~
> 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
**设置别名是为了方便后面操作,简化命令,这很容易理解了吧。**
## 扩展知识
为什么别名用"origin",用别的可以吗?
当然可以用别的,origin是Git对远程库的默认叫法,也可以改成别的,但是origin这个名字一看就知道是远程库啊,并且github初始化项目也是用的这个别名的,所以用这个是最好的。
其实对版本仓库的很多设置/配置信息很多都是保存在仓库根目录的./.git/config文件中的,这个文件一般长这样:
~~~
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git@github.com:xiasf/github-note.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
~~~
从这里其实你也基本看出来了,我们刚才设置的远程仓库别名和当前(默认)分支,还有一些配置信息。
其实这里面还可以设置很多信息哦,别忘了“git配置也是这个文件哦”所以一些自动以配置,比如git 配置,命令别名等也可以在这里配置哦。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
使用git clone 克隆远程仓库时是只能的,如果使用ssh地址克隆的则配置默认为ssh的,如果使用url则默认是url的。换句话说也就是git将克隆时的地址用作了配置中的远程地址。
- 说明
- git配置
- git与github的关系
- 基础概念
- git命令
- git init
- git status
- git diff
- git log
- git reflog
- git add
- git commit
- git reset
- git checkout
- git rm
- git stash
- git remote
- git push
- git clone
- git branch
- git fetch
- git merge
- git rebase
- git pull
- git tag
- 建立版本库
- 分支合并
- 远程库别名
- Pull requests
- 扩展知识
- 功能文件
- 差异看法
- 注意细节
- github移动端
- git工作系统理解
- 仓库嵌套问题
- 仓库的使用问题
- 常用命令
- 学习资料
- 学习总结
- 示例文件
- README.md
- CONTRIBUTING.md
- .gitignore
- coding
- 大小写问题
- 如何贡献
- 使用账号密码clone
- git目录分析
- HEAD
- 代码部署问题
- 开发流程
- 指定公钥文件