Git怎样修改长途仓库地址
企业搬移, 作为git仓库的服务器IP地址变了。 当地代码挺多,从新检出太占工夫,可以修改一个什么配置让我当地仓库和新的长途仓库创立关联吗, 答案是确定的!
要领有许多,这里简略介绍几种:
下列均以项目git_test为例:
老地址:http://192.168.1.12:9797/john/git_test.git
新地址:http://192.168.100.235:9797/john/git_test.git
长途仓库名称: origin
要领一 通过下令直接修改长途地址
进入git_test根目录
git remote 查看所有长途仓库, git remote xxx 查看指定长途仓库地址 git remote set-url origin http://192.168.100.235:9797/john/git_test.git
要领二 通过下令先删除再增加长途仓库
进入git_test根目录
git remote 查看所有长途仓库, git remote xxx 查看指定长途仓库地址 git remote rm origin git remote add origin http://192.168.100.235:9797/john/git_test.git
要领三 直接修改配置文件
进入git_test/.git
vim config [core] repositoryformatversion = 0 filemode = true logallrefupdates = true precomposeunicode = true [remote "origin"] url = http://192.168.100.235:9797/shimanqiang/assistant.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
修改 [remote “origin”]下面的url即可
要领四 通过第三方git客户端修改。
以SourceTree为例,点击 仓库 -> 仓库配置 -> 长途仓库 即可治理此项目中配置的所有长途仓库, 而且这个界面最下方还可以点击编辑配置文件,一样可以完成要领三。
git 长途仓库治理
要参与任何一个 Git 项目的协作,必必要理解该怎样治理长途仓库.长途仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同别人协作开发某 个项目时,需要治理这些长途仓库,以便推送或拉取数据,分享各自的工作进展.治理长途仓库的工作,包括增加长途库,移除废弃的长途库,治理各式长途库分 支,定义是否跟踪这些分支,等等.本节我们将细致计议长途库的治理和运用.
查看目前的长途库
要查看目前配置有哪些长途仓库,可以用 git remote 下令,它会列出每个长途库的简短名字.在克隆完某个项目后,至少可以看到一个名为 origin 的长途库,Git 默许运用这个名字来标识你所克隆的原始仓库:
$ git clone git://github.com/schacon/ticgit.git Initialized empty Git repository in /private/tmp/ticgit/.git/ remote: Counting objects: 595, done. remote: Compressing objects: 100% (269/269), done. remote: Total 595 (delta 255), reused 589 (delta 253) Receiving objects: 100% (595/595), 73.31 KiB | 1 KiB/s, done. Resolving deltas: 100% (255/255), done. $ cd ticgit $ git remote origin也可以加上 -v 选项(译注:此为 ?verbose 的简写,取首字母),显示对应的克隆地址: $ git remote -v origin git://github.com/schacon/ticgit.git要是有多个长途仓库,此下令将全部列出.比方在我的 Grit 项目中,可以看到: $ cd grit $ git remote -v bakkdoor git://github.com/bakkdoor/grit.git cho45 git://github.com/cho45/grit.git defunkt git://github.com/defunkt/grit.git koke git://github.com/koke/grit.git
origin git@github.com:mojombo/grit.git这样一来,我就可以非常轻松地从这些会员的仓库中,拉取他们的提交到当地.请注意,上面列出的地址只要 origin 用的是 SSH URL 链接,所以也只要这个仓库我能推送数据上去(我们会在第四章解释缘由).
增加长途仓库
要增加一个新的长途仓库,可以指定一个简略的名字,以便未来援用,运转 git remote add [shortname] [url]:
$ git remote origin $ git remote add pb git://github.com/paulboone/ticgit.git $ git remote -v origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git此刻可以用字串 pb 指代对应的仓库地址了.比方说,要抓取所有 Paul 有的,但当地仓库没有的信息,可以运转 git fetch pb:
$ git fetch pb remote: Counting objects: 58, done. remote: Compressing objects: 100% (41/41), done. remote: Total 44 (delta 24), reused 1 (delta 0) Unpacking objects: 100% (44/44), done. From git://github.com/paulboone/ticgit * [new branch] master -> pb/master * [new branch] ticgit -> pb/ticgit
此刻,Paul 的主干分支(master)已经完全可以在当地访问了,对应的名字是 pb/master,你可以将它合并到本人的某个分支,或者切换到这个分支,看看有些什么有趣的更新.
从长途仓库抓取数据
正如以前所看到的,可以用下面的下令从长途仓库抓取数据到当地:
$ git fetch [remote-name]此下令会到长途仓库中拉取所有你当地仓库中尚无的数据.运转完成后,你就可以在当地访问该长途仓库中的所有分支,将其中某个 分支合并到当地,或者只是掏出某个分支,一探讨竟.(我们会在第三章细致计议对于分支的概念和操纵.)
要是是克隆了一个仓库,此下令会主动将长途仓库归于 origin 名下.所以,git fetch origin 会抓取从你上次克隆以来他人上传到此长途仓库中的所有更新(或是上次 fetch 以来他人提交的更新).有一点很重要,需要记住,fetch 下令只是将远端的数据拉到当地仓库,并不主动合并到目前工作分支,只要当你的确预备好了,才能手工合并.(说 明:事先需要新建好长途的仓库,然后施行:git remote add [仓库名] [仓库url],git fetch [长途仓库名],即可抓取到长途仓库数据到当地,再用git merge remotes/[仓库名]/master就可以将长途仓库merge到当地目前branch.这种分支方式比较适合独立-整合开发,即各自开发测试好后 再整合在一起.比方,Android的Framework和AP开发.
可以运用--bare 选项运转git init 来设定一个空仓库,这会初始化一个不包含工作目录的仓库.
$ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare init这时,Join,Josie 或者Jessica 就可以把它加为长途仓库,推送一个分支,从而把第一个版本的工程上传到仓库里了.)
要是设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以运用 git pull 下令主动抓取数据下来,然后将远端分支主动合并到当地仓库中目前分支.在日常工作中我们经常这么用,既快且好.现实上,默许状况下 git clone 下令本质上就是主动新建了当地的 master 分支用于跟踪长途仓库中的 master 分支(假如长途仓库的确有 master 分支).所以个别我们运转 git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中目前分支.
推送数据到长途仓库
项目进行到一个阶段,要同他人分享当前的成果,可以将当地仓库中的数据推送到长途仓库.实现这个任务的下令很简略: git push [remote-name] [branch-name].要是要把当地的 master 分支推送到 origin 服务器上(再次注明下,克隆操纵会主动运用默许的 master 和 origin 名字),可以运转下面的下令:
$ git push origin master只要在所克隆的服务器上有写权限,或者统一时刻没有其别人在推数据,这条下令才会如期完成任务.要是在你推数据前,已经有其别人推送了若干更新,那 你的推送操纵就会被驳回.你必须先把他们的更新抓取到当地,并到本人的项目中,然后才可以再次推送.有关推送数据到长途仓库的细致内容见第三章.
查看长途仓库信息
我们可以通过下令 git remote show [remote-name] 查看某个长途仓库的细致信息,比方要看所克隆的origin 仓库,可以运转:
$ git remote show origin * remote origin URL: git://github.com/schacon/ticgit.git Remote branch merged with 'git pull' while on branch master master Tracked remote branches master
ticgit除了对应的克隆地址外,它还给出了很多额外的信息.它友善地告诉你要是是在 master 分支,就可以用git pull 下令抓取数据合并到当地.另外还列出了所有处于跟踪状态中的远端分支.
现实运用历程中,git remote show 给出的信息可能会像这样:
$ git remote show origin * remote origin URL: git@github.com:defunkt/github.git Remote branch merged with 'git pull' while on branch issues issues Remote branch merged with 'git pull' while on branch master master New remote branches (next fetch will store in remotes/origin) caching Stale tracking branches (use 'git remote prune') libwalker walker2 Tracked remote branches acl apiv2 dashboard2 issues master postgres Local branch pushed with 'git push'
master:master它告诉我们,运转 git push 时缺省推送的分支是什么(译注:最后两行).它还显示了有哪些远端分支尚无同步 到当地(译注:第六行的 caching 分支),哪些已同步到当地的远端分支在远端服务器上已被删除(译注:Stale tracking branches 下面的两个分支),以及运转 git pull 时将主动合并哪些分支(译注:前四行中列出的 issues 和 master 分支).(此下令也可以查看到当地分支和长途仓库分支的对应关系.)
长途仓库的删除和重命名
在新版 Git 中可以用 git remote rename 下令修改某个长途仓库的简短名称,比方想把 pb 改成 paul,可以这么运转:
$ git remote rename pb paul $ git remote origin
paul注意,对长途仓库的重命名,也会使对应的分支名称产生变化,本来的 pb/master 分支此刻成了paul/master.
遇到远端仓库服务器迁移,或者本来的克隆镜像不再运用,又或者某个参与者不再奉献代码,那么需要移除对应的远端仓库,可以运转 git remote rm 下令:
$ git remote rm paul $ git remote origin
以上就是本文的全部内容,但愿对大家的学习有所帮忙,也但愿大家多多支撑我们。
热门标签:dede模板 / destoon模板 / dedecms模版 / 织梦模板