远程仓库
- 远程主机上的仓库
- 远程仓库是连接别人的主机 然后才是代码的获取或者推送
- 实际上git是分布式的,每一台主机的git结构都相似,只是把其他主机git仓库叫做远程而已
创建共享仓库
- 创建文件夹
mkdir gitrepo
- 设置文件夹属主
chown tarena:tarena gitrepo
- 将文件夹设置为可共享的git仓库
cd gitrepo
git init --bare
- 设置将本地仓库属主
chown -R tarena:tarena fly.git
guosihan@guosihandeMacBook-Pro project % cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
editor = sublime
guosihan@guosihandeMacBook-Pro project % mkdir git repo
guosihan@guosihandeMacBook-Pro project % mkdir gitrepo
guosihan@guosihandeMacBook-Pro project % chown tarena:tarena gitrepo/
chown: tarena: illegal group name
guosihan@guosihandeMacBook-Pro project % cd gitrepo/
guosihan@guosihandeMacBook-Pro gitrepo % ls
guosihan@guosihandeMacBook-Pro gitrepo % git init --bare fly.git
Initialized empty Git repository in /Users/guosihan/Desktop/gitTUT/project/gitrepo/fly.git/
guosihan@guosihandeMacBook-Pro gitrepo % ls
fly.git
guosihan@guosihandeMacBook-Pro gitrepo % cat fly.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = true
ignorecase = true
precomposeunicode = true
guosihan@guosihandeMacBook-Pro gitrepo %
我们可以观察到这里的bare变成了True,最后设置将本地仓库属主:
chown: tarena: illegal group name
guosihan@guosihandeMacBook-Pro gitrepo %
用于连接远程主机:
git remote add origin tarena@127.0.0.1:/home/tarena/gitrepo/fly.git
默认使用ssh传输手段
将自己的代码推送到(自己的)远程仓库中,也就是将本地分支推送到远程:
git push -u origin master
删除远程主机:
git remote rm [origin]
- 在第一次向远程仓库推送时需要加 -u选项,以后就不需要了
克隆一个项目,也就是从远程仓库获取项目:
git clone projectfile
从远程仓库中拉取分支或者代码 直接拉取远程分支和当前分支合并:
git pull origin dev_Tom
拉取远程分支到本地,不合并:
git pull origin dev_Tom:dev_Tom
说明:
- 前面的dev_Tom是远程分支名
- 后面的dev_Tom是本地分支名
代码的退出和拉取,也就是将本地代码推送到连接的远程仓库
git pull
git fetch
如果有新的分支拉取到本地 但不会和本地分支合并
git push --force origin
当地版本比远程版本旧是用本地旧版本覆盖远程的新版本,这里是更想用老版本