2012-05-10 4 views
0

私は初心者の質問があります。git + ftp upload

私はmasterとtestbranchの2つのブランチを持っており、私はtestbranchに切り替えてから、FTPを使って新しいファイルをアップロードしますが、masterとtestbranchの両方に影響しますか?

"git st"を実行すると、マスターとテストブランチの両方で変更が表示されました。

マスターからの変更を隠す方法はありますか、それともgitの仕組みですか?あなたは人跡未踏のファイルを追加すると、あなたはまだ他のブランチをチェックアウトすることができ、ファイルが滞在する事前

+0

新しいファイルを_download_意味するか:

あなたのコマンドことができますが、このようなもののように思えますか?私は一種の混乱している。 – Nic

+0

私は次のセットアップをしています:ssh用のパテと私の開発者とライブサーバーにgit。ファイルをダウンロードしてアップロードするためのfilezilla(編集後)。私は自分のdevサーバーの変更を追跡し、リポジトリを削除し、ライブWebサイトに変更を加えるために私のライブサーバーからプルを行います。私の設定が正しいかどうかは不思議です。 – ssj1980

+0

ああ、もし私が "Testbranch"に切り替えた後、FTP経由でsomefile.phpを編集すると、その変更はtestbranchとmasterの両方か、あるいは単にtestbranchに表示されますか? – ssj1980

答えて

1

感謝。逆を想像してみましょう.Gitがブランチを切り替えるときにGitを削除すると、ファイルはコミットされてから失われます!

しかし、git statusは、ファイルがuntrackedであるとは言いますが、ブランチが影響を受けているとは限りません。ブランチレコードと作業コピーとの間の状態が異なることを伝えるだけのGitです。

その後、あなたは2つのオプションがあります。ただ状態を隠しておく、コミットしないでくださいmasterに切り替えたとき、それが削除され、testbranch

  • に戻って切り替えるときに再表示さ:

    • を追加し、コミットしたファイルをそしてmasterに戻る:

    git stash --include-untracked 
    #file is saved in a temporary place, and removed 
    git checkout master 
    #do stuff... 
    git checkout testbranch 
    # git stash pop 
    #file is restored 
    
  • 1

    git checkoutコマンドを使用していることを「スイッチ」と呼んでいるようです。このコマンドは、リポジトリ内のコミットされたバージョンを切り替えます。新しいファイルをFTPでアップロードすると(コミットしない限り)、コミットされたバージョンに影響しません(私はあなたのサンドボックスにファイルを追加する、または既存のファイルを上書きすることを意味します)。 FTPアップロードを使用して、サンドボックスに配置したファイルをコミットする予定ですか(私は推測します)。それがブランチに影響する唯一の方法だからです。

    testbranchで作業しているときに、一般的には、masterブランチのコミットに影響を与えることはできません。コミットは、あなたがrebaseの場合を除き、まったくコミットされたままになります。

    0

    ftpアップロードの日付を知っている場合は、git whatchangedを使用して変更ファイルのリストを取得できます。

    git whatchanged --since 'dd/mm/yyyy' --until 'dd/mm/yyyy' --oneline --name-only --pretty=format: | sort | uniq