0

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

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

最好的,迈赫迪

4

3 回答 3

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

此时,您应该像克隆后一样位于本地主分支上。如果要将更改从本地合并到主:

git merge local

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

如果您正确执行了所有这些操作但仍然无法编辑文件,则可能是权限问题:

sudo chmod 644 /path/to/local/files/* -R
于 2012-07-18T11:30:35.693 回答
1

所以这里有一些有用的命令

假设你在 master 分支上然后你创建了 newbranch

$git checkout -b 新分支

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

$git 添加。$git commit -m "提交信息"

然后切换到master分支

$git 结帐大师

合并更改

$git 合并新分支

于 2012-07-19T08:53:36.697 回答
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'

现在就好像我不合时宜的头脑风暴没有发生在文件 B 上一样。随时可以在不同的分支中进行编辑。

于 2015-08-20T12:35:07.393 回答