git clone したフォルダを単純に zip すると、.git フォルダが含まれてしまったり、普段は .gitignore などで無視しているファイルが含まれてしまったりします。 Git リポジトリの内容だけを取り出して zip ファイルにするには、git archive コマンドが便利です。 参考:GitHub だと、Git のタグをつけておくことで、git archive で生成したファイルと同様の zip ファイルが Release ページからダウンロードできます。 基本的な使い方 Git リポジトリの内容を zip ファイルにするには次のようにします。HEAD の部分は、タグ名、ブランチ名、コミットID、などが指定できます。
リモートリポジトリのデフォルトブランチ名変更(master → main)に追従する 〜Gitの内部構造の理解を深めながら〜GitbranchBLM 2020年、BLM運動に伴い、Git界隈でもデフォルトブランチをmasterからmainに変更しようという動きが起こりました。Gitのデフォルトブランチ名変更は、リモートリポジトリがなければ非常に簡単です。リモートリポジトリと連携している場合も、自分が主導権を握っている(リモートリポジトリに書き込める)場合は比較的単純で、ドキュメントも多数見つかります。しかし、書き込めず、基本的にread-onlyで使っているリモートリポジトリの場合、少し面倒ですので、こちらにまとめておきます。 「read-onlyなのだから、単にcloneしなおせばよい」という意見もあると思います。しかし、巨大リポジトリの場合、cloneしなおすにはそれなりの資源の浪費を
公式ドキュメントには以下のように書かれています。 THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE. 和訳:このコマンドは実験的です。動作が変更される可能性があります。 この記事の内容と違う場合があるので、ご注意ください。 この記事は2024年2月28日時点の情報です。 え?まだgit checkoutしてるの? git checkoutといえば、ブランチを切り替えたり、git addしたファイルを元に戻したりするコマンドですが、それはもう古いです。 実は2019年8月リリースのgit 2.23からgit switchとgit restoreが追加されました。 知らなかった人も多いのではないでしょうか?(恥ずかしながら私は知らなかった...) 「先輩、checkoutってなんすか?」と後輩に聞かれる前に、この記事を読んでgit sw
.gitignoreにファイルを指定することで、git上にアップしたくないファイルをアップせずに済みます。 ローカルでのみ必要なファイルがある場合に非常に便利です。 しかし、.gitignoreに記載したのに反映されなかったことがあったので、原因と解決策について記載します。 原因 一度gitにアップしてもらったものを、.gitignoreに追加したことが原因だった。 キャッシュにインデックスが残っているので、.gitignoreの設定が反映されていなかった。 解決策 手順 .gitignore 編集 キャッシュを削除 commit & push キャッシュ削除の際、ファイルを削除しているわけではないのでご安心を。 また、pushした際に大量のremoveログが出るが、ローカルのファイルが消えたわけではないのでご安心を。 キャッシュ削除の方法 下記コマンドを実行する。 ファイル全体キャッシュ
ホーム / ハック / gitignoreで階層にかかわらず特定の名前のフォルダをすべて除外する
Git で、ユーザー名とメールアドレスを設定する方法です。(1) 全体の設定方法と、(2) プロジェクト毎の設定方法の2つを紹介します。 1. プロジェクトをまたいだ全体の設定(グローバル, global)そのコンピュータにおける git 全体のユーザー名・メールアドレスの設定です。 以下のコマンドを実行します。 ユーザー名を設定する。 git config --global user.name "ユーザー名"メールアドレスを設定する。 git config --global user.email メールアドレスここで設定した情報は、~/.gitconfig に書き込まれます。上記のコマンドを使用せず、直接こちらのファイルに書き込んでもよいです。 ~/.gitconfig [user] name = ユーザー名 email = メールアドレス 参考 Git – First-Time Git
1. 使い始める 1.1 バージョン管理に関して 1.2 Git略史 1.3 Gitの基本 1.4 コマンドライン 1.5 Gitのインストール 1.6 最初のGitの構成 1.7 ヘルプを見る 1.8 まとめ 2. Git の基本 2.1 Git リポジトリの取得 2.2 変更内容のリポジトリへの記録 2.3 コミット履歴の閲覧 2.4 作業のやり直し 2.5 リモートでの作業 2.6 タグ 2.7 Git エイリアス 2.8 まとめ 3. Git のブランチ機能 3.1 ブランチとは 3.2 ブランチとマージの基本 3.3 ブランチの管理 3.4 ブランチでの作業の流れ 3.5 リモートブランチ 3.6 リベース 3.7 まとめ 4. Gitサーバー 4.1 プロトコル 4.2 サーバー用の Git の取得 4.3 SSH 公開鍵の作成 4.4 サーバーのセットアップ 4.5 Git
Git のリポジトリが大きくなると、新しい開発者がクローンして作業を始めるのが難しくなります。Git は 分散 バージョン管理システムとして設計されています。つまり、リポジトリとのやりとりを管理する中央サーバーに接続しなくても、自分のマシンで作業ができるということです。これが完全に実現できるのは、すべての到達可能なデータがローカルリポジトリにある場合だけです。 もっと良い方法があったらどうでしょうか?Git の全履歴にあるすべてのファイルのすべてのバージョンをダウンロードしなくても、リポジトリで作業を始めることができたらどうでしょうか?Git の パーシャルクローンやシャロークローンという機能は、こういったケースで役立ちます。その一方でこれらの機能にはトレードオフもあります。これらの選択肢は Git の分散という性質によってもたらされる可能性を少なくとも一つは壊してしまうため、こうしたトレ
git pull の取り消し方法です。勢い余って pull してしまったが、やばい、コンフリクトしてしまった・・。一回やり直したい!そんなときの方法です。 それでは、git pull の取消方法に関して、2つのパターンについて、それぞれ解説していきます。 git pull したブランチが、現在のローカルブランチにマージされた場合 git pull したブランチが、現在のローカルのブランチとコンフリクトした場合 さっそく見ていきましょう。 Case 1マージが成功した時の取り消し まず、基本のおさらいですが、 git pull は「git fetch」と「git merge FETCH_HEAD」のショートハンドなのでした。詳しくはこちら: git pull コマンドの使い方と、主要オプションまとめ git pull の取り消しとは、要は pull したリモートブランチのマージを取り消しすれ
あきぞらです。 git rebase を使っていて、失敗したので元に戻そうと思ったときのコマンドを紹介していきます。 git rebase を実行したときのコマンド 以下のようなコマンドで、git rebase を実行したとします。 $ git rebase -i HEAD~5 これを取り消したい状況になったとします。 git reflog、resetを使ってrebaseを取り消す $ git reflog $ git reset --hard HEAD@{5} これでrebaseの処理を取り消すことができました。 git rebaseを中断する またgit rebase は、以下のコマンドで中断することができます。 $ git rebase --abort
こんにちは、kenzauros です。 Git LFS で巨大ファイルとして管理したいファイルは git lfs track で管理対象として指定すればいいのですが、今回は同じリポジトリ内でフォルダによって LFS の適用を切り替えたくなったので、その方法をメモしておきます。 Git LFS の適用 バイナリーでなくとも、たとえば数 MB を超えるようなデータベースダンプファイルなどは差分を表示するだけでも時間がかかる上、特に差分管理が必要でない場合があります。 こんなときは git lfs track *.sql と叩いて、拡張子が *.sql のファイルを Git LFS で追跡させるようにします。 これを行うとルートディレクトリの .gitattributes ファイルに下記のような設定が追加されます。 .gitattributes のリファレンスはあまりいいものがないのですが、見づ
概要 表題のとおり。やリかたよく忘れるので備忘録も兼ねて。 対象者 push済のcommit変えちゃダメとかそういうのいいから今すぐpush済のcommitをsqushでまとめたい人。 rebaseコマンドを使う rebaseコマンド HEADから遡って、まとめたいcommit数 + 1を指定する。 以下は、HEADから遡って4commitをまとめる例。 (HEADも含めて4commit) まとめる対象commitを選択 すると以下のような画面が開く。 This is a just commit以外のpickをsもしくはsquashに書き換えて、保存する。 なぜ1行目は書き換えないのかというと、こうすることで、This is a just commitに他のcommitが集約されるからだ。そのために、4commitまとめるのに、HEAD~5を指定したのだ。 ちなみに全部sにすると、Cann
こんなとき あぁ〜、コミットメッセージ変更したいなぁ〜。 方法 git log:n個前のコミットメッセージを変更したい! ↓ git rebase -i HEAD~n ↓ 自動でvim起動。変えたいコミットの先頭にあるpickをeditに変える。 ↓ git commit --amend -m "<新コミットメッセージ>" ↓ git rebase --continue ↓ git log:変更できている! 解説 git log:コミットメッセージを見る % git log --oneline e35aade (HEAD -> master) commit 4 754cc2f commit 2 # ここのメッセージを変えたい! 25c09e4 commit 2 58e25f0 commit 1 pick ↓ 1 edit 754cc2f commit 2 2 pick e35aade co
どの値を設定するかは、どのOS上でコードを実行するかによって異なります。 Linux上で利用する場合 input チェックアウトやクローン時には変換せず、コミット時に「CRLF」を「LF」に変換します。Windows上で作成したファイルは「CRLF」となりますが、コミット時に「LF」へ変換されるため、Linux上で正常に動作させることができます。 また、チェックアウト時は「LF」のままにしておきたいので、変換をしない「input」が適切です。 Windows上で利用する場合 false Windows上で作成したファイルは「CRLF」となり、チェックアウト時もコミット時も変換する必要はないので「false」を設定します。 Gitの設定ファイル Gitには以下の3つの設定ファイルがあります。 システムの設定ファイル C:/Program Files/Git/etc/gitconfig ユーザ
I have a project that has a submodule at lib/three20 My .gitmodule file looks like this: [submodule "lib/three20"] path = lib/three20 url = git://github.com/facebook/three20.git I have cloned this in the past without errors, (git submodule init followed by a git submodule update) and it's been working for a while. I tried to clone this to a new machine, and now I'm getting this error on git submod
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く