1

svn リポジトリで git を使用する方法を学びたいです。

私はこのマニュアルに従います: http://git-scm.com/book/en/Git-and-Other-Systems-Git-and-Subversion

ファイルにいくつかの変更を加えます。それらのいくつかは上演され、いくつかは上演されませんでした:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   CHANGES.txt
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   CHANGES.txt
#

マニュアルによると、最初にステージングされた変更をローカル リポジトリにコミットします。

$ git commit -m "new"
[master 21bf2bd] new
 1 file changed, 1 insertion(+)

今、私は将来のコミットのように生きたいと思っています。

$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   CHANGES.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

そして、ローカル コミットを上流の svn にプッシュしたい:

$ git svn dcommit         
CHANGES.txt: needs update
update-index --refresh: command returned error: 1

なぜ私はそれを行うことができないのですか?

「dcommit」はいつ使用でき、いつ使用できないのですか? この情報が明らかに不足しており、Google やman ページで詳細な説明を見つけることができませんでした。

4

1 に答える 1

2

dcommit を実行すると、コミットされていない変更を行うことはできません。

変更を一時的に非表示にするには、 を使用しますgit stash。次に でコミットしgit svn dcommit、最後に でスタッシュをポップしてgit stash pop、変更をもう一度有効にします。

于 2014-11-10T11:52:54.550 に答える