カテゴリー
SugiBlog Webデザイナー・プログラマーのためのお役立ちTips

gitコマンドで差分抽出とアーカイブ出力

gitを使ってソース管理し開発をしていて、差分ファイルをリリースするときのTipsです。

差分を抽出する

git diff [古いブランチ名]..[新しいブランチ名]
git diff [古いブランチ名] [新しいブランチ名]

ファイル名だけを列挙したいとき

git diff --name-only [古いブランチ名] [新しいブランチ名]

ファイル名のリストをテキストファイルにリダイレクトで書き出す

git diff --name-only [古いブランチ名]..[新しいブランチ名] >> diff.txt

ブランチをアーカイブ出力

git archive [ブランチ名] -o archive.zip

出力するディレクトリを指定

git archive --prefix=archive/ [ブランチ名] -o archive.zip

差分抽出とアーカイブ出力を組み合わせて、抽出した差分ファイルをアーカイブ出力

git archive --prefix=archive/ [新しいブランチ名] (git diff --name-only [古いブランチ名] [新しいブランチ名] --diff-filter=ACMR) -o diff.zip
フィルターの種類
A 追加
C コピー
M 変更
R リネーム
D 削除

小文字にすると逆になるので、以下のようにしても同じことになります。

git archive --prefix=archive/ [新しいブランチ名] (git diff --name-only [古いブランチ名] [新しいブランチ名] --diff-filter=d) -o diff.zip
800 views

VSCode+GitとGitHubを連携させる

VSCodeを使ってローカルリポジトリとGitHubのリモートリポジトリを連携させる方法

まずはGitHubにログインして新しいリポジトリを作成しましょう。
新しいリポジトリを作成したときに表示されるコマンドでの公式のやり方を参考にします。

リポジトリを何の設定もせずに作成したときに以下のような連携方法が表示されます。

…or create a new repository on the command line
echo "# python_practice" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin main
…or push an existing repository from the command line
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git branch -M main
git push -u origin main

前者の方法はローカルリポジトリが未作成の場合の方法です。
今回はローカルリポジトリは作成済のものとして後者の方法で進めていきます。
続きを読む…»

688 views

VSCodeのソース管理でリポジトリの初期化が出来ない

VSCodeとGit for Windowsを使ってソース管理をしています。
新たに管理したいディレクトリがあったので、リポジトリを初期化しようとしてハマったのでその解決法を書いておきます。

環境
– Windows 10 64bit
– VSCode 1.68(1.67でも検証)
– Git for Windows 2.36.1.windows.1

管理したいディレクトリをVSCodeで開き、リポジトリを初期化しようしました。
すると、.gitディレクトリは作成されるものの、VSCodeの表示は「リポジトリを初期化」ボタンが表示されたままで、ソース管理が出来ません。

Git Bashにてコマンドでやってみよう
git initを実行

$ git init
Initialized empty Git repository in C:/***/.git/

.gitディレクトリは作成されました。
続いて、git add -Aを実行

$ git add -A
fatal: unsafe repository ('C:/***' is owned by someone else)
To add an exception for this directory, call:

        git config --global --add safe.directory C:/***

と言われ、リポジトリへの追加が出来ませんでした。
続きを読む…»

4,092 views

Git for Windowsのアップデート

Git for Windowsのアップデート方法(ver 2.16以降)

公式サイトGit for Windowsからインストーラーをダウンロードしてくるか、以下のコマンドを実行すれば自動でダウンロードしてくれます。
インストール自体は同じGUI画面が表示されるようです。

$ git update-git-for-windows
5,304 views

VSCode+Git Git初期設定

VSCodeとGitを使う前提での設定になります。
VSCodeは今、私の中で非常に便利なエディターなのでそれを利用します。

ユーザー情報を設定
これを設定しておかないとまずGitが使えません。

$ git config --global user.name 'username'
$ git config --global user.email 'username@example.com'

エディターとマージツールをVSCodeに設定

$ git config --global core.editor 'code --wait'
$ git config --global merge.tool 'code --wait "$MERGED"'

pushのデフォルト方式を設定
私は初心者なので初心者向けのsimpleを設定
同名のブランチのみpushが行われる

$ git config --global push.default simple

pullの際のマージに関する設定

$ git config --global pull.rebase false

git status実行時、日本語ファイル名の文字化けを防ぐ

$ git config --global core.quotepath false

デフォルトのブランチ名を「master」から「main」に変更する

$ git config --global init.defaultbranch main

設定した内容を確認したい場合は以下のコマンド

$ git config --list

--globalはGit全体での設定になります。
--localにするとリポジトリ毎の設定になりますので、通常は--globalにすることをお勧めします。

VSCodeとGitを使う場合、拡張機能のGit Graphをインストールしておくと、変更履歴が比較できるので非常に便利です。
Git Graphを使うときは[メニュー]-[表示]からコマンドパレットを開き、git graphと入力するとGit Graph: View Git Graph (git log)が候補として表示されるのでそれを選択します。

また、左下にある「Git Graph」をクリックするとすぐに開けます。こちらのほうが簡単ですね。

参考URL:
VSCodeでのGitの基本操作まとめ – Qiita
VSCodeでGit・GitHubを使う方法を解説する【初心者向き】
gitconfig の基本を理解する – Qiita

723 views