编辑来自不同git分支的文件

时间:2012-07-18 11:13:51

标签: git

我对git很陌生。我在本地服务器上克隆了一个项目,然后使用TextMate编辑我的文件。

所以,我有一个名为master的分支。然后我创建了一个名为local的第二个分支。我做了一些修改,添加了一些文件并将它们全部提交。但是现在当我回到我的主分支时,我无法使用TextMate编辑古代文件(未修改的主分支文件)。怎么可能解决这个问题?我不应该使用TextMate吗?

最佳, 梅迪

3 个答案:

答案 0 :(得分:2)

那么你做了这样的事情:

#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

此时,您应该像克隆一样在本地主分支上。如果要将更改从local更改为master:

git merge local

您可以随时运行git status查看哪些文件已更改,git branch -a查看您的回购中的所有分支

如果您正确地完成了所有这些并且仍然无法编辑文件,则可能是权限问题:

sudo chmod 644 /path/to/local/files/* -R

答案 1 :(得分:1)

所以这是一些有用的命令

假设您在主分支上,那么您创建了newbranch

$ git checkout -b newbranch

然后在这里编辑一些文件,然后你需要提交更改

$ git add。 $ git commit -m“commit message”

然后切换到主分支

$ git checkout master

合并更改

$ git merge newbranch

答案 2 :(得分:0)

我总是需要像那样编辑。举例来说,我想出了一些重要的东西,需要立即将它们慢慢地放在一个文件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中。总是随意编辑不同的分支。