問題タブ [git-checkout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 変更を破棄しようとするとGitの問題が発生する
私はgitステータスを行います:
次に、git checkout xxx / yyy/something.PNGおよびxxx/yyy / something-1.PNGですが、git statusを再度実行すると、次のように表示されます。
SnowLeophardを使用しています
ありがとう
git - 外部からの git checkout ブランチ
問題: このプロジェクトの特定のフォルダーになくても、ファイル システムで既にローカルにクローンされているプロジェクトの既存のブランチを何らかの方法でチェックアウトする必要があります。
解決策:私は次のことをしようとしています:
git clone 'github-project-url' 'file-system-folder'
git checkout 'existing-branch' 'file-system-folder'
2 番目のステップが正しくないことは認識していますが、回避しようとしていcd 'file-system-folder'
ます。
git-push - これはGitで可能ですか?
gitリポジトリを特定のコミット時の状態にしたいと思います。リポジトリがその状態になったら、Githubにプッシュして、リモートをその状態にできるようにしたいと思います。電話をかけることができgit checkout <commit hash>
、ローカルリポジトリは指定されたコミット時の状態になりますが、プッシュすることはできません。
何かをやるべきだと思いgit checkout
ますが、どうしたらいいのかわかりません。
この簡単な質問について助けてくれてありがとう:)
git - git checkout master が編集内容をリセットするのはなぜですか?
基本的に、私はすでにマスターブランチで作業しており(別のブランチにチェックアウトしていませんでした)、 git add を実行した後です。そして git commit を行った後、誤って git checkout master を実行してしまいました。現在、git push を実行すると、すべてが最新であると表示されます (ただし、もちろんそうではありません)。かなり奇妙なものです。
git - Gitエイリアスを使用してBash関数を起動する方法
〜/ .gitconfigでGitエイリアスを使用して、定義されている場合はbash関数を呼び出し、そうでない場合は通常のを呼び出しますgit checkout
。
これは私が考案したものです:
dash
問題は、Gitが/ bin / sh(私の場合はたまたまそうです)を使用しcompgen
、組み込みであるためにバーフオンすることですbash
。
Gitがbash
このコマンドを実行するために使用することを確認する方法はありますか?
vxzExecuteGitCheckout()
まだ〜/.bashrcに含まれていないファイルで定義されていることに注意してください。
もう1つの質問は、を使用する場合、このBash関数が見つからない場合git co -b param1 param2 ...
、上記のエイリアス定義はに渡されますか?-b param1 param2
git checkout
git - git の古いコミットからファイルを復元する
数週間前に行った古いコミットがあります。そのコミットから単一のファイルのみを復元したい。私は何をしますか?
git - gitの「追跡」の概念にはさまざまな意味がありますか?
「git branch -r」を実行して取得します
原点/支店1
オリジン/ブランチ2
man ページの -r オプションは、「(-d と一緒に使用した場合) リモート追跡ブランチを一覧表示または削除します」。したがって、origin/branch1 と origin/branch2 はリモート追跡ブランチとして知られています。ただし、リモート追跡ブランチに直接コミットすることはできません (代わりに匿名ブランチが作成されます)。リモート トラッキング ブランチは、'git fetch' の実行時にリモート ブランチを単純に追跡します。
ここで、セマンティクスが少しぼやけます。私なら
git checkout -b branch1 origin/branch1
次の出力が得られます。
これが私の質問です。何が私を混乱させているのかを明確にするために、可能な限り詳細に説明します...ブランチ1を起点からリモートブランチbranch1を追跡するように設定したおかげで、「branch1」はリモート追跡ブランチと見なされますか? もしそうなら、これは「git branch -r」を実行したときに「origin/branch1」がリモート追跡ブランチとして既にリストされていたという事実と矛盾しませんか? 私の理解では、ローカル (トピック) ブランチまたはリモート追跡ブランチのいずれかが存在します。「git checkout -b branch1 origin/branch1」を実行すると、フェッチによってリモート ブランチを追跡するローカル (トピック) ブランチ (コミットを追加できるブランチ) が作成されますか? 「git branch」を実行すると「* branch1」が返され、「git branch -r」を実行しても「origin/branch1」と「origin/branch2」が返されるようになりました。コミットを追加し、origin/branch1 を追跡するために branch1 を作成しました。「git branch」の出力からの「branch1」、または「git branch -r」の出力からの「origin/branch1」のリモート追跡ブランチと見なされるのはどれですか?
git - 受信後のフックでGIT_WORK_TREEを再利用して、いくつかのファイルをrmします
この「チュートリアル」を使用してDSP環境をセットアップしました:http://toroid.org/ams/git-website-howto(はい、Tはありません)。
私のワークフローはとても簡単です:
- ローカルで開発する(D)
- いくつかのことをコミットする
- より多くのことをコミットする
- ステージング(およびGithub)にプッシュ(S)
- ステージングで新しいコードをテストする
- 本番環境へのプッシュ(P)
私のコードには、私のコードによって縮小されてから1つのファイルに保存されるCSSファイルが含まれていますall.css
。ローカルでは、このオプションをオフにしているのでall.css
、CSSを変更するたびに手動で削除する必要はありません。ステージングと本番の両方で、できるだけ早くキャッシュする必要があります(したがってall.css
、別々のCSSファイルから作成します)。
問題は、プッシュするたびに、変更を確認する(そして適切にテストする)ために削除するall.css
(そしてall.js
-まったく同じストーリー)必要があることです。
チュートリアルからpost-receive
、変更を特定のフォルダー(Apacheがコードを読み取る場所)にチェックアウトするフックを作成しました。
私の現在のpost-receive
フック:
再利用して(beingと)$GIT_WORK_TREE
内の2つのファイルを削除したいのですが、できません...次の行にvar$GIT_WORK_TREEがありません。$GIT_WORK_TREE
www/all.css
www/all.js
それで私はそれをこれに変更しました、しかし私はそれが好きではありません、特に私が将来それでもっとやりたいならば:
$GIT_WORK_TREE
このように再利用されません。
私が試したがうまくいかないこと:
rm:ファイルが存在しないなど(/www/all.css)(
$GIT_WORK_TREE
空)
致命的:この操作は作業ツリーで実行する必要があります
致命的:gitリポジトリ(または任意の.....)にありません
私の問題は、GITの仕組みと同様にBashの仕組みにもあると思います=)
git - gitでブランチを切り替える-「ローカルの変更があるとブランチを切り替えることができません」と表示されるのはいつですか?
一般的な推奨事項は、gitでブランチを切り替える前にクリーンなステータスにすることです。(stashまたはpark-commit)。「ローカルの変更があるとブランチを切り替えることができません」がいつ表示されるかを理解しようとしていますが、ロジックに従うことができません:
version.txtというファイルのリポジトリに「1」というテキストが含まれています。
git checkout -b new
echo 2 >> version.txt(作業ディレクトリはダーティではありません。ファイルを変更しました)
git checkout master(どうしてこれが機能するのですか?私は新しいものに変更をステージング\コミットしていません)
新しいブランチのファイルコンテンツを削除するか、最初にファイルをステージングした場合も同じことが起こります。
「ローカルの変更があるとブランチを切り替えることができません」がいつ表示されるかを誰かが理解するのを手伝ってもらえますか。?
ありがとう、蘭
git - 特定のコミット時の作業ディレクトリの内容を取得するにはどうすればよいですか
いくつかのコミットを含む git リポジトリがあります。特定のコミット直後の作業ディレクトリの正確な状態を再現したい(ここでは、行われたすべての変更をコミットしたと仮定します)。
を使用しようとしましgit checkout
たが、このコマンドは作業ディレクトリ内の既存のファイル (目的のコミット後に追加されたもの) を削除しません。
私の問題を説明する簡単な例。次のコマンドを使用してリポジトリを準備しました
現在、ディレクトリは次のようになっています
first.file
次のコンテンツがあります
最初のコミット直後の作業ディレクトリを復元したい ( fb05f7e
)
しかしsecond.file
、third.file
まだディレクトリにあります