git remotes

简单地说,一个remote repository是一个非本地的repo。它可以是在你公司网络上的另外一个git repo,也可以是在internet上,甚至在你本地文件系统中的一个repo,关键点是它和你的my-git-repo project是不同的。

我们已经知道branch在单个的repo中是如何组织你的工作流的,但是要知道branch本身在Git的跨repo分享commit也有重要作为。Remote branches和我们一直本地使用的local branch没有太多区别,他们仅仅代表着存在于另外一个repo中的一个branch而已。

这意味着我们可以利用我们branch的merging/rebasing技能很方便扩展到合作开发上去。下面我们假装在我们的样例web项目开发中有多个开发人员一起工作,他们是如何利用Git来协作的。

我们假设Mary,作为我们的graphic designer,她需要加入我们的web项目开发中。

Clone the Repository(MARY)

首先,mary需要一个她自己的repo以便可以开始工作。Git支持分布式的工作流,但是为了简便我们直接在本地文件系统中模拟不同repo协作。

cd /path/to/my-git-repo
cd ..
git clone my-git-repo marys-repo
cd marys-repo

上面的命令将在本地不同目录clone了一个my-git-repo项目repo,命名为marys-repo。

Configure The Repository (Mary)

首先,mary需要配置她clone的repo以便我们知道谁对项目做了贡献。

git config user.name "Mary"
git config user.email [email protected]

注意由于我们没用--global选项,上面的user.name,email都只对这个repo有效,保存在.git的config文件中。

Start Mary’s Day (Mary)

今天,Mary开始开发她的bio page,她首先要在我们repo的clone repo中(对她来说,就是一个local repo)创建一个独立的分支以便隔离工作。

git checkout -b bio-page

Mary可以方便地在她的repo中创建和check out branches。她的repo是一个完全和我们的repo隔离的环境,她可以不用考虑任何在我们原始my-git-repo中的开发活动,任意地做她想做的开发工作。

就如branches是working directory的一种抽象,the staged snapshot, a commit history, a repository是一个branch的抽象。

Create Mary’s Bio Page ,commit,merge(Mary)

在marys-repo中,更改about/mary.html,随后commit该change到bio-page branch上,merge该branch到master上,以便准备分享mary自己的工作

git commit -a -m "Add bio page for Mary"
git log -n 1
git checkout master
git merge bio-page

现在我们项目repo和mary的repo是这样的:

注意:两个repo都有常见的,本地branches,两个repo之间还没有任何交互动作,所以我们没有看到remote branches.

时间: 2024-11-03 02:32:43

git remotes的相关文章

Git管理分支

管理分支:git branch 直至现在为止,我们的项目版本库一直都是只有一个分支 master.在 git 版本库中创建分支的成本几乎为零,所以,不必吝啬多创建几个分支.下面列举一些常见的分支策略,仅供大家参考: * 创建一个属于自己的个人工作分支,以避免对主分支 master 造成太多的干扰,也方便与他人交流协作. * 当进行高风险的工作时,创建一个试验性的分支,扔掉一个烂摊子总比收拾一个烂摊子好得多. * 合并别人的工作的时候,最好是创建一个临时的分支,关于如何用临时分支合并别人的工作的技

Git命令自定义别名

别名用来帮助你定义自己的git命令.比如你可以定义 git a 来运行 git add --all. 要添加一个别名, 一种方法是打开 ~/.gitconfig 文件并添加如下内容: [alias] co = checkout cm = commit p = push # Show verbose output about tags, branches or remotes tags = tag -l branches = branch -a remotes = remote -v ...或者在

idea项目更改git地址

第一步:idea打开项目,菜单栏找VCS - Git - Remotes 点进去,弹出对话框,选中,点击编辑 弹出编辑框,更改地址,点击ok 弹出输入账号密码编辑框,输入自己的账号密码,点击确认 完成!!! 原文地址:https://www.cnblogs.com/jing5990/p/12290175.html

PhpStorm 2016.3 For Mac 重大里程碑更新 -- 终于解决了不能输入中文标点符号的重大bug

PhpStorm 2016.3 For Mac 重大里程碑更新 1.[终于解决了]不能输入中文标点符号的重大bug,如 逗号“,”.“.”: 2.可以在一个窗体中,同时打开多个项目: 3.其他... 2016.11.24 发布了 PhpStorm Version: 2016.3 正式版   Build: 163.7743.50 Frameworks, Tools, more: Support of Docker in Remote Interpreters, support of PHPSpec

salt之sys_doc

# salt '*' sys.doc | grep "salt '*'" salt '*' acl.delfacl user myuser /tmp/house/kitchen salt '*' acl.delfacl default:group mygroup /tmp/house/kitchen salt '*' acl.delfacl d:u myuser /tmp/house/kitchen salt '*' acl.delfacl g myuser /tmp/house/ki

20172303 2017-2018-2 《程序设计与数据结构》实验四报告

20172303 2017-2018-2 <程序设计与数据结构>实验四报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 范雯琪 学号:20172303 实验教师:王志强 助教:张旭升/刘伟康 实验日期:2018年5月30日 必修/选修: 必修 实验内容 Android Stuidio的安装测试 Activity测试 UI测试 布局测试 事件处理测试 实验过程及结果 (一)Android Stuidio的安装测试 要求 参考<Java和Android开发学习指南(第

git中remotes/origin/HEAD指向的分支丢失

当用git查看分支的时候,末尾会提示一个错误信息: $ git branch -av ...... ...... error: some refs could not be read 查了下几个分支都是正在用的,一直没有找到问题所在,偶然用branch -a查看到remotes/origin/HEAD指向了一个不存在的分支: $ git branch -a ...... remotes/origin/HEAD -> origin/www ...... origin/www这个分支以前有用过,后来

git问题 next fetch will store in remotes/origin

项目在git的下无法查找到需要的Branch 但是在Bitbucket下可以查到到 通过GitBash,发现git branch -a与git remote show origin 输出的远程分支不一样,git remote show origin命令输出多余的分支:branch_XXXX_XXXX   new ( next fetch will store in remotes/origin) 这是因为it branch -a 输出的是本地仓库的远程分支信息,而git remote show

homebrew update 出现Failure while executing: git pull --quiet origin refs/heads/master:refs/remotes/origin/master解决方案

具体可以参考https://github.com/Homebrew/homebrew/issues/21002 cd /usr/local git status git reset --hard origin/master git clean -d