Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复制git目录使用git签出更改两个目录_Git_Ssh_Terminal_Repository - Fatal编程技术网

复制git目录使用git签出更改两个目录

复制git目录使用git签出更改两个目录,git,ssh,terminal,repository,Git,Ssh,Terminal,Repository,我一直在到处寻找任何人,他们可能知道为什么会发生下面的事情,但没有运气。我真的很希望这里的人能理解正在发生的事情并能帮助我,因为我太迷路了 这里是正在发生的事情,我们有多(2)个目录,每个开发人员在这个项目上,一个私人和一个公共。我遇到了一个问题,我在我的私人文件夹上,我们称之为“源”,我做了一个“git签出-b branch_name_here”,处理了我需要处理的所有事情,然后做了一个提交和推送…”git将原始分支机构名称推到此处,因此它现在位于主回购协议上。然后我进入了我的公共文件夹,我们

我一直在到处寻找任何人,他们可能知道为什么会发生下面的事情,但没有运气。我真的很希望这里的人能理解正在发生的事情并能帮助我,因为我太迷路了

这里是正在发生的事情,我们有多(2)个目录,每个开发人员在这个项目上,一个私人和一个公共。我遇到了一个问题,我在我的私人文件夹上,我们称之为“源”,我做了一个“git签出-b branch_name_here”,处理了我需要处理的所有事情,然后做了一个提交和推送…”git将原始分支机构名称推到此处,因此它现在位于主回购协议上。然后我进入了我的公共文件夹,我们称之为“pub_source”,并试图把它拉出来git checkout branch_name_here'但是这出现了一个错误,说了一些关于没有跟踪历史记录之类的东西,所以我疯狂地走进终端窗口做了这个

rm -rf pub_source
cp -R source pub_source
这就成功了,现在我的pub_源文件中有了正确的文件,我可以向所有人展示一切正常。现在问题来了,我回到我的源代码文件夹,做“git checkout master”,认为一切都很酷,但事实并非如此!发生的事情是源和发布源都更改为master

所以我非常困惑,现在我无法在不破坏pub目录的情况下更改源分支。我将在下面运行这些命令,这样您就可以确切地看到发生了什么

ssh <<SERVER NAME>>
cd source //that takes me to my "working" directory and git repo
git checkout -b <<BRANCH NAME>>
//Work on files and get things fixed
git add -A //There were a lot of files and this is easier
git commit -m "blah blah"
git push origin <<BRANCH NAME>>
cd .. //takes me back to my home dir
rm -rf pub_source //Delete the pub directory
cp -R source pub_source //now pub source has all the new files and is on the right branch
cd source // back into working dir
git checkout master
ssh
cd source//将我带到我的“工作”目录和git repo
git签出-b
//处理文件并修复问题
git add-A//有很多文件,这更简单
git提交-m“废话”
git推送原点
cd//带我回家
rm-rf pub_source//删除发布目录
cp-R source pub_source//now pub source拥有所有新文件,并且位于右侧分支上
cd源//返回到工作目录
切换到主分支
在git checkout主行之后,source和pub_source都切换到master。现在,每当我在源代码中处理分支时,即git签出“另一个分支”,源代码和pub_源代码都会更改为“另一个分支”。 我真的希望我的解释是正确的,我真的真的希望有人能看到发生了什么,以及我如何让我的源文件夹能够在不更改发布源的情况下更改分支。提前感谢您可能提供的任何帮助


另一方面,我知道如果我做了“git checkout-b origin”,我会有跟踪信息,然后可以在酒吧里拉车,但我没有,现在我被卡住了。请帮忙。谢谢你

你能检查source或pub_source是否是一个符号链接吗?在包含它们的目录中运行
ls-l
。如果其中一个是,它将看起来像
source->pub_source
Try
git checkout-b foobranch origin/foobranch
在您的
pub_source
@Khaelid中没有sym链接,我运行了该代码,没有显示类似的内容。里面有sym链接,但仅指向包含站点图像的其他文件夹。MNIIP-这很有效,pub_source也在这上面,但如果我现在转到source并进行git签出