管理远程仓库需要知道如何添加远程仓库、移除无效的远程仓库、管理各种远程分支和设置是否跟踪这些分支
仓库与分支
2. 显示远程仓库
Git remote命令列出每个远程仓库的简短名称,在克隆某个仓库之后,至少可以看到名为origin的远程仓库,这是git给克隆的源服务器取的默认名称。可以用-v参数,这样会显示git存储的美格远程仓库对应的URL:
为了便于同多人协作,一个仓库会拥有多个远程仓库地址,
3. 添加远程库
添加一个远程仓库,并给它起一个简短名称使用,格式:
Git remote add [shortname] [url]
之前
如: git remote add test ssh://git@119.29.xxx.xxx:10053/dev/v8
这样可以在命令行中使用test替代完整的URL,比如git fetch test命令(从远程仓库中获取本地仓库没有的数据,这样后,就可以在本地引用远程仓库包含的所有分支,并可以任何时候合并或检查这些分支)
4. 从远程仓库获取和拉取数据
Git fetch [remote-name]
此命令从远程仓库中获取所有本地仓库没有的数据。执行后可以在本地引用远程仓库包含的所有分支,并可以在任何时候合并或检查这些分支。
当clone仓库时,clone命令会自动添加远程仓库的地址并取名为origin
比如git clone ssh://git@119.29.xxx.xxx:10053/dev/d10
当随后执行git fetch origin时,会获取到所有自上一次clone/fetch之后被推送到服务器端的新增的变更数据。请注意,git fetch命令只会把数据拉取到本地仓库,然而它不会自动将这些数据合并到本地的工作目录。准备好之后,需要手动将这些数据合并到本地内容中。Git pull可以从服务器上获取的数据自动合并到当前工作目录下的本地数据。
5. 推送数据到远程仓库
当我们需要把变更推送到远程仓库,采用git push [remote-name] [branch-name]。如果想把本地master分支推送到远程的origin服务器上(git clone操作会自动使用这两个名字作为默认设置)。
Git push origin master//把任意提交推送到服务器端
此命令能正常工作的前提是必须拥有clone下来的远程仓库的写权限,并且clone后没有任何其他人向远程仓库推送过数据。如果别人先推送,我们后推送,那么我们的这次推送会直接被拒绝。我们必须用git pull拉取别人的变更,将其合并到我们的工作成果中,然后才能推送。
6. 检查远程仓库
要查看某一远程仓库的更多信息,用git remote show remote-name命令。比如:
chenky@Lenovo-ser:~/git/d10$ git remote show origin
* remote origin
Fetch URL: ssh://git@119.29.137.28:10053/dev/d10
Push URL: ssh://git@119.29.137.28:10053/dev/d10
HEAD branch: master
Remote branch:
master tracked
// 在本地master分支git pull远程分支remote/master合并到本地master分支
Local branch configured for 'git pull':
master rebases onto remote master
//列出在master分支执行git push会自动推送到远程分支emote/master
Local ref configured for 'git push':
master pushes to master (local out of date)
7. 删除和重命名远程仓库
Git remote rename a b//把远程仓库a重命名为b
这个操作也会更改远程分支的名称,先前的a/master分支变成了b/master。
如处于某种原因,需要删除某个远程仓库,比如当我们迁移了服务器地址,或是不再使用某一仓库镜像,又或是某个参与者退出协作时,可用git remote rm命令,如git remote rm a删掉远程仓库a。
8.切换分支
track
表示的是远程仓库与之对应的分支,这个信息被称为upstream
,上游,远程仓库的,是上游。本地的,是下游,有一个对应的关系。track
本意是轨迹、跟踪的意思,使用了--track
或者--no-track
来设置这个,这个信息会传递给git branch
。
git checkout -torigin/xxx,xxx是分支名字