GIT
不同于SVN - 它是一个分布式版本控制系统。不要把它看作像服务器和多个客户端的SVN,相反它有助于从对等的角度来思考它。
让我先回答你的问题:
切换回:
没有切换回new_clone问题 - new_clone是一个存储库,而不是一个分支,该分支是掌握和new_branch如git branch
所列。如果要切换到主人(原始分支),请使用:git checkout master
或一般git checkout <branch-name>
。可以使用git push origin new_branch
将分支推送到原点。
如(1)所述,没有new_clone
分支。使用此:git diff new_branch master
见(2)
你不使用在这种情况下合并。但假设你有2个工作副本,并且你想在它们之间共享代码,你可以使用git merge将变化从一个副本合并到另一个副本中。
让我们看一个完整的运行,以帮助您了解所有的概念。 Alice和Bob的用户(对等),谁正在使用GIT:
创建2个用户Alice和Bob
sudo adduser alice
sudo adduser bob
登录爱丽丝和配置
su alice
git config --global user.name "Alice"
git config --global user.email [email protected]
登录鲍勃和配置
su bob
git config --global user.name "Bob"
git config --global user.email [email protected]
Alice创建GIT存储库
个
mkdir project
cd project/
git init
echo "Some text" > test
git add test
git commit -m "Adding test"
git status
鲍勃克隆它,编辑和提交更改
cd ~
git clone /home/alice/project myclone
cd myclone/
git log # See the changes from Alice
echo "Some text - edited by Bob" > test
git commit -m "Making changes to test" -a
git diff
爱丽丝合并来自鲍勃变化
git remote add bob /home/bob/myclone
git fetch bob
git branch -a # To list
git log -p master..bob/master
git merge --no-ff bob/master # Merge changes from Bob
爱丽丝使得在试验分支的修改,然后提交它:
git branch experimental
git branch # To list
git checkout experimental
git branch # To list
echo "Some text - edited by Bob, further edited by Alice" > test
git commit -m "Further modifying test" -a
git checkout master
git log -p master..experimental
git merge --no-ff experimental
git branch -d experimental # To delete the branch
鲍勃拉改变:
git pull
请注意,这里没有中央服务器,Alice和Bob是同级。
更多细节在这里:
1.开关来回购意味着我要拍从new_clone的变化,而不是从它的分支2.how做出改变在分支中,然后推送到new_clone – Rajeev 2012-02-09 06:10:02
@Rajeev使用'git checkout'将自己放在你喜欢的任何分支上。 – Borealid 2012-02-09 13:55:19