Propagate a remote location via clone/push/pull

我怕爱的太早我们不能终老 提交于 2019-12-21 11:22:40

问题


Our project uses several third-party open-source libraries, some of which require custom modifications.

For each library we created our own local git repository, added the original source location as a vendor remote, cloned from there, modified it as needed and pushed it to an internal remote repository (let's call it origin).

These repositories are then used as submodules in our core project.

The problem: The "vendor" remote url is not propagated to the "origin" and is therefore lost to anyone who clones the internal library repository.

Every time you want to merge the new upstream changes for a library, you need to find and manually add the vendor remote again (or use the exact same local repository created at the beginning, if it's still available).

Is there a better way to store the vendor repository url so that it can be propagated and used by every developer? Adding an extra file (e.g. clone_from_here) to the library doesn't seem very elegant, either.


回答1:


You can do it via .git/config. After you have successfully pulled or pushed your change, look at the .git/config file and make a note of the remote url and fetch

After the repository has been cloned by your developer(s), open up .git/config on the developers machine and add the line you have copied. Example -

[remote "vendor"]
    url = git@xxx.com:xxxxx/xxxxxxx.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Your developers can now push or pull to vendor in this example.

If you need more control on writing the fetch url - there is excellent documentation on this at gitguys - http://goo.gl/JGaKD



来源:https://stackoverflow.com/questions/8712816/propagate-a-remote-location-via-clone-push-pull

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!