我对git很陌生。我在本地服务器上克隆了一个项目,并使用TextMate编辑我的文件。编辑来自不同git分支的文件
所以,我有一个叫master的分支。然后我创建了一个名为local的第二个分支。我做了一些修改,添加了一些文件并提交了所有文件。但现在当我回到我的主分支时,我无法使用TextMate编辑古代文件(未修改的主分支文件)。如何解决这个问题?我是否应该不使用TextMate?
最佳, 迈赫迪
我对git很陌生。我在本地服务器上克隆了一个项目,并使用TextMate编辑我的文件。编辑来自不同git分支的文件
所以,我有一个叫master的分支。然后我创建了一个名为local的第二个分支。我做了一些修改,添加了一些文件并提交了所有文件。但现在当我回到我的主分支时,我无法使用TextMate编辑古代文件(未修改的主分支文件)。如何解决这个问题?我是否应该不使用TextMate?
最佳, 迈赫迪
你有没有做这样的事情,那么:
#clone out repo that only has master branch
git clone path/to/repo
#create and checkout branch local
git checkout -b"local"
## edit files ###
#stage files
git add .
#commit changes
git commit -m"did some work"
#switch back to master
git checkout master
此时,你应该在你本地的master分支,你是克隆后。如果你想在本地更改合并到主:
git merge local
在任何时候,你可以运行git status
看看哪些文件已经改变,git branch -a
看到所有的分支机构对您的回购
如果您没有这一切正确,仍然无法编辑文件,那么它可能是一个权限问题:
sudo chmod 644 /path/to/local/files/* -R
我就像你说的一样,逐点。但是例如,当我切换后运行ls命令时,我发现我在本地分支上工作时添加的所有文件。这怎么可能? – 2012-07-18 11:35:09
只有一点,我没有合并两个分支,因为我现在不想这样做 – 2012-07-18 11:36:21
好吧,如果文件未被git跟踪,那么当您切换分支时它们将保持原样,因为它们不受git控制。你首先需要提交它们。因此,例如,如果您克隆了回购,添加文件,然后在不提交这些文件的情况下切换分支,那么这些文件会跟随您,直到您将它们提交给分支。如果你运行一个git状态,你会在标题下看到这些文件:Untracked files: – Manatok 2012-07-18 11:37:53
因此,这里是一些有用的命令
假设你是在主分支,那么你创建newbranch
$ git的结帐-b newbranch
然后在这里编辑一些文件,那么你需要提交改变
$ git的补充。 $ git的承诺-m “提交信息”
然后切换到主分支
$ git的结帐主
合并更改
$ git的合并newbranch
我总是需要像那样编辑。举例来说,我想出了一些重要的东西,并且需要立即在一个文件A中将它们慢跑,它不在我正在编辑未完成提交的文件B的分支中,我的操作如下所示:
# stage and commit the fileB
git add fileB; git commit -m 'uncompleted'
# checkout to the branch containing file A
git checkout branchA
# editting the file A
# stage and commit the fileA
git add fileA; git commit -m 'big idea'
# go back to the first branch
git checkout branchB
# reset to the previous commit without changing the working-spot
git reset --soft HEAD~
# edit again and commit
git add fileB; git commit -m 'extend the previous commit'
现在它就像好像我生不逢时brainstrom的中断都没有发生过的文件B.总觉得在不同势分支机构进行编辑。
可能只是一个权限错误。 Git不会阻止你编辑文件... – Manatok 2012-07-18 11:16:43
但是当我用我的Mac上的文件查看我的文件时,它们对应于最新版本。看来我不能使用TextMate进行编辑,不是吗? – 2012-07-18 11:20:27