git--分支实验记录

来源:互联网 发布:linux c 串口 select 编辑:程序博客网 时间:2024/04/26 22:44

有参考价值的网站:    https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF

1 删除远程分支

在github创建仓库

learn_gitCommond_reset

使用 git remote add ,使远程库与本地库关联

github已经默认创建了master分支
     我们再在这个仓库里创建test分支

(1)实验内容1,检验如何看到远程分支
此时,在本地,使用命令 git branch -a
只能看到远程的master分支,并没有看到远程新创建的test分支

此时,在本地使用git pull 一下,
再次使用git branch -a ,就能看到远程分支的master 和test 分支.

(2)实验内容2,删除远程分支
我们在此删除刚刚建立的test分支
通过参考http://zengrong.net/post/1746.htm
在本地运行以下命令git push origin --delete test (注意 test 不能写成remotes/origin/test)
其他删除方法:git push origin :test ,原理:提取空白然后把它变成[远程分支]
到github上可以看到test分支已经被删除

(3)实验内容3,验证git branch -v的意义

(4)如何将本地分支(远程没有对应分支),推送到远程,实现与其他人的共享???
之前很诡异的是,
git chekout -b teeeee
git push origin teeeee (格式:gitpushoriginlocal_branch:remote_branch)
并不成功,在长冰演示错误时,却意外成功了.回头看了下刚刚错误的记录,并没有找到刚刚产生错误的原因,这个先按下不表.
另外注意一点,将新创建的分支推到远端,并不能自动建立跟踪关系

(5)已经删除的分支如何找回

(6)实验内容6,如何追踪远程分支
实验准备:远程有分支master,本地有分支master
在github上建立新分支test(也就是在远程建立分支test)
此时在本地敲命令 git branch -av,还看不到远程的test分支,
再敲命令git pull,首先会提示当前本地分支,并没有跟踪信息,要求制定合并哪个分支:意思就是远程分支的所有信息和变化,已经拿到本地了(所以此时,再敲git branch -av就可以看到
,远程刚刚添加的分支test),但是并不知道具体的"接头人".
此时,处于本地的master分支,并没有跟踪任何信息,
运行git checkout test(注意本地还没有test分支),完成了2个动作:
在本地创建test分支,关联,即完成了跟踪;之后在本地test分支上,敲命令git pull,将远程的分支test和本地的test合并.
以后只要在本地test分支上敲git pull,它就会下载远程分支的更新.
但是,如果在其他分支,如master分支上的话,则没有效果.

(6)以前我不懂分支之间的切换 和 commit之间的切换的 代价和区别是什么,是有点傻傻的.
commit之间的切换,可以通过git reset --hard....来切换,这个命令会修改git log,会修改commit,会修改工作区,缓冲区,总感觉像是在刀刃上行走,并不妥当
而分支之间的切换,只需git checkout 就可以在多个版本中跳跃了,并没有其他要求.


(7)保持清洁的工作区

(8)切换commit
无意中,碰到一个现象: git reset --hard 000000,不仅可以在本分支上的不同commit上移动,而且还可以指向其他分支的commit.
在master上由多次提交,C0<-C1<-C2,在C2处切出一个分支issue
issue分支上有提交C3.
checkout master
master 找到C3的代号,就可以滚到C3.

(9)git push 实验
首先本地的maser和test分支,都已经跟踪了远端的master和test分支;
本地master分支上进行修改,并commit;
git checkout test;
在test分支上,git push;
实验结果发现,push成功
通过运行命令git branch -av
确实可以看到,虽然是在test上push的信息,但是master的信息并推到远端的master上.




(10)git branch -vv
查看 本地分支,与远端的哪个分支跟踪信息
如果一个本地分支并没有设置与远程分支关联,在该分支上执行git pull 时就会提示你去做关联,
然后git branch --set-upstream-to=origin/[remote] [local]即可.

(11)git pull实验
首先本地的maser和test分支,都已经跟踪了远端的master和test分支;
在远端,也就是在github网站上,直接操作,远端master分支,进行修改,提交一个commit.
实验准备完成后,我们在本地开始工作,我们首先git checkout test,然后git pull 发现并没有任何反应,
通过使用git branch -av 可以查看当前的本地远端的提交情况
我们继续git checkout master,在master分支运行git pull,发现成功拉取远端更新

结论:git pull 是要求必须到对应分支上进行操作的





















0 0
原创粉丝点击