リポジトリからの機密データの削除について git filter-repo や BFG Repo-Cleaner などのツールを使用してリポジトリの履歴を変更する場合、特にオープン プル リクエストと機密データに関する影響を理解することが重要です。 git filter-repo ツールと BFG Repo-Cleaner によって、リポジトリの履歴が書き換えられます。これにより、変更した既存のコミットと依存するコミットの SHA が変更されます。 コミットの SHA を変更すると、リポジトリ内の開いている pull request に影響する場合があります。 リポジトリからファイルを削除する前に、開いているすべての pull request を結合または閉じることをお勧めします。 git rm を使用して、最新のコミットからファイルを削除することができます。 最新のコミットで追加されたファ
TL;DR git merge --allow-unrelated-histories origin/masterをする! ※ 2020/12/01追記 2020年10月より, デフォルトブランチがmasterからmainに変更になりました.(https://github.com/github/renaming) なので, 新しく作った方は git merge --allow-unrelated-histories origin/mainになります! なにが起きたの? GitHub上でリポジトリを作り, READMEを作成した. ローカルでgit initしてリポジトリを作り, git remote add origin <GitHubのリポジトリ>でリモートリポジトリを指定. ローカルで作業を行い,コミットしプッシュを行おうとした. プッシュを行おうとしたら, 下のようになった. To
個人用メモです。 「git gcってあんまし容量減らないよなぁ」 と思ったのが動機です。調べたけどパッと腑に落ちる記事がなかったので「自分で git のソースコード見た方がいいな」と急にモチベ発動してグワっと勉強しました。またついでに歴史改変の方法も調べたのですが、公式で既に WARNING が出てるほど非推奨化されてるfilter-branchを使用してる記事が多かったので、2021 年現在で多分一番推奨されてるfilter-repoを使ってやる方法もまとめました。 ちなみに容量減らしても高速化するかというとそこまで単純ではないです。そもそも減らさなくても partial clone で blob オブジェクトを必要最低限に指定して昔の blob をデフォルトで持ってこないようにしたり(--no-checkoutと併用するとより効果有る)、その後本当に自分が必要なやつだけ sparse-
git cherry-pickはローカルリポジトリに登録された任意のブランチのコミットを適用します。 IDが657150dのコミットを適用 git cherry-pick 657150d 例として、developブランチの1つ前のコミットのみをmasterブランチにコミットします。 ・欲しいコミットがあるdevelopブランチに切り替える git checkout develop ・最新の2件のコミットを確認 git log -oneline -2 602f68d Bファイル削除 657150d Aファイル追加 ・masterブランチに切り替える git checkout mater ・特定のコミットのIDを指定 git cherry-pick 657150d リモートにあるブランチをcherry-pickしたい場合、まずはfetchしてローカルリポジトリにコミットを取り込みます。 git
20190501追記 わかりにくい文章を修正しました 「その3 パート1」の方法を追加しました 追記ここまで gitでマージ作業を始めたけど、もろもろの理由からやっぱりやめたいときのやり方3種類です。 その1 「マージしたらコンフリクトした。やっぱりやめよう。」 マージしたらコンフリクトした、コンフリクトするとは思わなかった、いったんやめよう、などといういうときです。 コンフリクトの編集をしていないときに限ります。
git を使っていると、変更を取り消したいときって度々訪れますよね。 特にチューニング系の何かをしていたりリファクタリングしたりしていると、「あ、前のコミットの方が良かったな...」と思うことが多々あります。 その際、プロジェクトが git管理されていれば取り消しは用意なのですが、git の概念を理解していないと、「あれ?ここ git reset -- で消えるんだっけ? git checkout .?」となることがあります。 本記事では、git reset --、git checkout .、git clean -f の違いを図示することで、ちゃんと理解しようということを目的としています。 Excuse 簡単のため、index tree の話とかは出てきません。 厳密な動作を知りたい方はここで読むのを止めてソースコードをあさってくださいm(_ _)m https://github.com
git 2.23.0 より switch や restore といった新たなコマンドが追加されたようだ。さっそく使ってみたいと思ったが自分の利用している Ubuntu 18.04 の標準状態では 2.17.1 が最新版のようだ。 $ git version git version 2.17.1 Ubuntu で git の最新版を利用するにはソースコードからビルドするか、git 公式の PPA よりインストールすると良い。ビルドするのはだるいので PPA を利用した。 $ sudo add-apt-repository ppa:git-core/ppa $ sudo apt update $ sudo apt install git これでインストールできた。PPA というのは Personal Package Archive の略で Ubuntu 公式のものではないリポジトリを追加できる
Webサービスやアプリ開発の現場では必須のバージョン管理システム「Git(ギット)」。Gitは、専用のソフトを使えばクリックで直感的に操作することもできますが、いざというときにコマンドが使えると便利です。 第3話 では、2つのブランチを統合するマージコミットの作り方と、その仕組みを学びました。 $ git merge [ブランチ名] (マージする) 今回の第4話は、コンフリクトについてです。なにそれ…と思われる方も、このお話しを通して、わかばちゃんと一緒にコンフリクトについて学んでいきましょう。 【筆者】湊川 あいさん フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶ Git使い方入門』『わかばちゃんと学ぶ Googleアナリティクス』『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ シ
別のブランチで修正したファイルの一部だけを取り込む必要があってぐぐってたんですが、なかなか同じシチュエーションの人が居ないようなので作業の記録を残しときます。 git mergeに特定のファイルを指定するようなオプションは無いので、ちょっと面倒ですがmerge -> 不要なファイルをreset ->commitという流れになります。 実際に使うコマンドはこんな感じです。 > git merge --no-commit -Xtheirs {mergeしたいブランチ名} > git reset HEAD {mergeしたくないファイル名} > git checkout {mergeしたくないファイル名} > git commit ぐぐるとcherry-pickでできるよ!みたいなことが書かれてるページもあったけど、cherry-pickはあくまで個別のコミットを適用するだけなので、mergeす
ブランチ ブランチとは ブランチの運用 ブランチの切り替え ブランチの統合 トピックブランチと統合ブランチでの運用例 チュートリアル1 ブランチを使ってみよう! 0. 前準備 1. ブランチを作成する 2. ブランチを切り替える 3. ブランチをマージする 4. ブランチを削除する 5. 並行で作業する 6. マージでの衝突を解決する 7. rebaseでマージする リモートリポジトリ pull fetch push タグ タグ チュートリアル2 タグを使ってみよう! 0. 前準備 1. 軽量タグを追加する 2. 注釈付きタグを追加する 3. タグを削除する コミットの書き換え 直前のコミットを修正する 過去のコミットを打ち消す コミットを捨てる コミットを抜き取る コミットの履歴を書き換える ブランチ上のコミットを一つにまとめてマージする チュートリアル3 コミットを書き換えよう! 1.
以前調べたネタですが、ここにメモしておきます。 (最近ブログの更新が滞っていたため) gitには普通のリポジトリとbareリポジトリがあります。普通のリポジトリは、チェックアウトされたファイルを含むリポジトリで、bareリポジトリは.gitディレクトリの中身のみを含むリポジトリです。 bareリポジトリは、 % git init --bare hoge のように作ります。サーバにbareリポジトリを作って、そこにみんなでpushするような使い方は一般的でしょう。ちなみに、push先がbareリポジトリではなかったりすると、ワーニングがでたりします。 さて、例えば2つのチームがそれぞれ別々のリモートサーバを使って別のbareリポジトリにpushしていたとします。その2つのbareリポジトリを同期したいとします。bareリポジトリにはチェックアウトという概念がないので、git mergeは使え
ブランチ ブランチとは ブランチの運用 ブランチの切り替え ブランチの統合 トピックブランチと統合ブランチでの運用例 チュートリアル1 ブランチを使ってみよう! 0. 前準備 1. ブランチを作成する 2. ブランチを切り替える 3. ブランチをマージする 4. ブランチを削除する 5. 並行で作業する 6. マージでの衝突を解決する 7. rebaseでマージする リモートリポジトリ pull fetch push タグ タグ チュートリアル2 タグを使ってみよう! 0. 前準備 1. 軽量タグを追加する 2. 注釈付きタグを追加する 3. タグを削除する コミットの書き換え 直前のコミットを修正する 過去のコミットを打ち消す コミットを捨てる コミットを抜き取る コミットの履歴を書き換える ブランチ上のコミットを一つにまとめてマージする チュートリアル3 コミットを書き換えよう! 1.
追記 git rm で削除したファイルはなく rm で削除したファイルだった。 本題 git rm rm で削除したファイル、git add しても以下のように stage にあげられなかった。 # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # deleted: hoge.js # deleted: foo.js # git add . --update で無事あげられました。 # Changes to be committed: # (use "git reset HEAD <file>.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く