第一个问题:
Git 的分支 有没有主分支,次分支之分? 看了需要文章说master是主分支,那么这个时候如果新建一个分支,其他分支算是子分支吗?
看了文章了解到,好像是有主次之分的,例如master是主分支,其他新建的次分支test,那么修改master的时候例如 对master 进行了 add 和 commint 那么 次分支test 是不是就自然而然的就有这些文件了;如果再test分支下面新建文件 但没有 add 和 commit 那么切换到master下面仍然看不到这个再test下新建的文件对吗? 只有再test 分支下 add 和 cimmint 之后 ,切换到master下才能看到再test下新建的文件对吗?
可现在的问题是:再test分支下面新建的文件未作任何 add 和 commit ,切换到master分支下后,还是可以看到那个新建文件的。
这么来说的话分支又有任何意义呢? 还是说我电脑的git的问题?
另外,是不是后建立的分支可以看到以前多有分支建的内容,即使没有add 和 commit?
第二个问题:
一个本地的git库可以克隆很多个网上其他的github仓库吗? 试了下,是可以的。
这是我克隆了网上的一个库之后的分支如下:
`[root@localhost test]# git branch -a
* dev
master
test
remotes/origin/HEAD -> origin/master
remotes/origin/master
`
其中 `master
test
remotes/origin/HEAD -> origin/master
remotes/origin/master`
这几个是库里面的,dev是我新建的。
问题1.
master
test
remotes/origin/HEAD -> origin/master
remotes/origin/master
这里面
remotes/origin/HEAD -> origin/master
remotes/origin/master
这两个的区别是什么意思?
问题2.我在新建的dev下面建立任何文件,再master和 test分支下都可以看见,这个是为什么?
不是说 要add,commit 后 才能看见吗?
问题3.克隆能克隆一个文件夹吗?
例如一个项目有 A B C 三个项目,能指克隆A这个文件夹吗?
问题4.链接问题:
使用:
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:Xoodge/test.git #将git目录和远程的链接起来
git push -u origin master
这个语句建立和我自己的github链接,和我用克隆把test克隆下来,这两个的区别是什么?
我自己的理解。 1. 这个github里面有我的SSHkey所以我才能 git remote add origin git@github.com:Xoodge/test.git 对吗? 如果没有我的SSH我就不能git remote add origin git@github.com:Xoodge/test.git 对吗?
2.这种建立连接的方式,意味着,我只要再本地 add ,commit 和push 就可以更新远程的test对吗?但是如果这个是克隆下来的,那么我要pull request?
选择几个问题回答,其他问题没懂你的意思
1Git的分支有没有主分支,次分支之分?
其实准确来说,应该叫做默认分支(Default branch),在github中的解释是
git仓库初始化的时候默认分支就是master。
对于本地git仓库而言,你新建一个分支,可以马上就把这个master分支删除了
对于大部分远程git仓库(github、gitee等)而言,是不允许你直接删除的,但是可以再更改默认分支后,再删除
2在test分支下面新建的文件未作任何 add 和 commit ,切换到master分支下后,还是可以看到那个新建文件的。
首先,出现这样的效果是正常的。

这就要引入git仓库中,工作区、版本库(包括但不限于暂存区)的概念了
图片出自廖雪峰的官方网站
你在没有add和commit之前文件还在工作区。而你这个时候切换分支,产生影响的仅仅是已经加入了版本库的文件,而对工作区的文件没有影响
3 remotes/origin/HEAD -> origin/master
这个表示远程仓库的默认分支是master分支
4克隆能克隆一个文件夹吗?
在git的理念中是不存在这样的操作的,也是非常不建议这样做的。
5这个语句建立和我自己的github链接,和我用克隆把test克隆下来,这两个的区别是什么
你自己在本地git init 这样建立的仓库就需要用git remote add origin增加一个远程仓库,用你的话来说就是和我自己的github链接
而克隆下来的,自己就带了你克隆的远程仓库地址了