Excel や Word 、 PowerPoint などの Office 製品を Git 管理する
## はじめに
社内でどうしても Office 製品のファイルを扱わないといけないとき、これを Git で変更管理できないだろうか?
というわけで、やってみました
https://github.com/RyoWakabayashi/office-examples
## 方針
どちらがよいか
– Office ファイルから必要な物をテキストでエクスポートして管理する
– バイナリのまま管理して、差分をツールで表示できるようにするやはりバイナリはリポジトリーに入れたくないので、できれば前者が良いが、、、
毎回エクスポートする手間、もしくはエクスポートを pre-commit で自動化するための環境作り(を他人が実行できるようにすること)が大変そう
前者のためのツールを試してみましたが、長い期間更新されていないし、あまり使いやすくはない
必ずしもすべての情報がエクスポートできるわけでもなさそう
https://github.com/vbaidiot/Ariawase
ということで、今回は後者、差分をツールで表示する方針にしました
## 差分抽出ツール
今回は2種
SSHキーでGithubに接続する。(初めてのgithub完全ガイド2)
#前回からの続き、ローカルファイルをGithubにpush
[前回](https://qiita.com/monsoonTropicalBird/items/b526a148da5f1a7f523b)はGitが何であるかの説明から、インストール、Gitコマンドの使い方などを書いたんじゃが、それをGithub上にアップする手順じゃ。
まず、今までの古いパスワード方式ではなく、SSHという方式で自分のパソコンとサーバーを接続するんじゃ。
この方式は、公開キーと秘密キーというふたつの鍵ペアを発行し、公開キーを外部のサーバーなどに置いておき、自分の内部の秘密キーと合わさった時に繋がるんじゃ。
公開キーが鍵、秘密キーが鍵穴みたいな感じで、2つがピッタリと合うと繋がるというイメージで、**少しエロいの**。
公開キーは鍵が複製できて、基本鍵穴は一つだけじゃ。###SSHキーを発行する
SSHキーの発行は、コマンドラインから“`
ssh-keygen -t rsa -b 4096 -C “youremailadd@namahage.com” // -t:type -b:b
ビッグカメラで買ったGit-hub を使う(初めてのgithub完全ガイド1)
#Git とは何じゃ? ビッグカメラで買えるんか?
すでにプログラミングを業務にされている諸先輩方は、今更なトピックかも知れませんが、プログラミングはじめました という入門者にとっては、GitやGit hubっていうのは、何やら世界のプログラマーが使う、怪しい秘密のプラットフォームで、色々なトラップが埋め込まれたハッカーの溜まり場的なイメージがあると思うのじゃ。
Gitっていうのは、ざっくり言うとプログラムの”バージョンコントロール”で、ドラクエで言う”セーブ”。教会で行うアレじゃ。
プログラムっていうのは、ほんの一文字で全てが崩壊する危機をはらんでおり、えらいことが起こった時に、その前に戻れるようにする機能のこと。
Git hubはそのデータをセーブしたり、管理したりするクラウドの場所。また、そのデータをチームで共有して、一緒に作業していく場。
別記事ではnodeのプロジェクトを解説していこうと思うので、その中でどう使うのかを解説してみるぞ。
###どうやって使うんじゃ?
まずはGitの機能を自分のコンピューターで使うために、ダウンロードしないと始まりません。
**ビッグ
Git 利用しているときの注意
###★Featureブランチ
– Developの最新から作成
– マージする時(pull request作成)はDevelopの最新(pull)にして、競合解決(あり場合)、マージする
– Push###★リリース
– MasterブランチにDevelopをマージする
– タグを作成(release_2020xxx)
– push
【git】暗記できない自分用のgit commandメモ
毎回あのコマンドどう打つんだっけ?ってなるので
メモ用に自分がよく使うgit commandをまとめたものになります。gitのコマンドちゃんと覚えている人すごい・・・
##サブモジュールを最新に更新する
“`
$ git submodule foreach git pull origin master
“`##変更退避
“`
$ git stash
“`##退避したリスト表示
“`
$ git stash list
“`##退避した作業を戻す
“`
$ git stash apply stash@{0}
“`##退避した作業の削除
“`
$ git stash drop stash@{0}
“`##add取り消し
“`
$ git reset HEAD <ファイル名>
“`##commitの取り消し
“`
$ git reset –hard HEAD^
“`##一部の更新だけを取り込みたい
“`
$ git cherry-pick <ハッシュ値>
“`##ローカルブランチお掃除候補表示
“`
$ git bra
git リベース/コミット編集/作業の避難
##git リベースで履歴を整えた形で変更を統合する
“`
*注意:Githubにプッシュしたコミットをリベースできない!!!
git push -f で強制的にプッシュできるが履歴が壊れるので、【絶対NG!!!!】$ git rebase ブランチ名
“`##git プルのマージ型
“`
$ git pull リモート名 ブランチ名
$ git pull origin master
“`##git プルのリベース型
“`
$ git pull –rebase リモート名 ブランチ名
$ git pull –rebase origin master・デフォルトでリベース型にするには
$ git config –global pull.rebase true
“`##git 直前のコミットをやり直す
“`
*GithubにプッシュしたcommitはNG!!$ git commit –amend
“`##git 複数のコミットをやり直す
“`
$ git rebase -i コミットID //-i interactive
Githubにpushする方法
#やりたいこと
ローカルのファイルをGithub上にpushする。#Githubとは
エンジニアが各々のプログラムをアップして自分以外のエンジニアと共有する場所
![vJ9K9dP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/805284/71e54ffb-f115-c116-fed6-83694263c38d.png)#サンプルファイル
今回は例として下記のtest.htmlを使用し、Githubに上げてみます。“`
Hello world !
Hello world !
“`1. 対象フォルダに移動
“`
cd test
“`
2.Gitリポジトリ作成 – 対象フォルダをGit管理対象に設定“`
git init
“`3.現在の状態を確認
“`
git status
“`
すると、まだインデックスに登録されていないため
【Git】マージ後にコミットのプッシュし忘れに気づいたとき
①feature/OAuthブランチでログイン機能を実装、
②コミットしてGithubにプッシュ
③feature/OAuthブランチでログアウト機能を実装
④feature/OAuthブランチをgithubでmargeした後にdelete blanch
⑤ログアウト機能の実装分をプッシュしていないことに気づく…上記のことが起きたので、自分用のメモとして書きました。
# 対処法
本記事は自分用のメモですが参考にされる場合は、より良い方法を追記したので[追記](#追記)に飛んでください。feature/OAuthブランチから新しいブランチを切ってプッシュする。
“`
$ git checkout -b feature/logout
$ git add .
$ git commit -m “ログアウト機能の追加”
$ git push origin HEAD
“`コミット時に「nothing to commit, working tree clean」と言われたら
“`
$ git commit –allow-
間違えてGitHubにpushしてしまった時の対処法
# 間違えてGitHubにpushしてしまった時の対処法。
間違えてGitHubにpushしてしまった!
そんな時はターミナルで以下の4つをやればいいだけです。
(1)git branch
(2)git reflog
(3)git reset –hard (2)で取得した値
(4)git push -f(1)ブランチ一覧を表示
(2)過去にコミットした履歴を見る
(3)コミットを取り消すことができる(自分のPC上のデータを削除)
(4)GitHub上のデータを削除## 感想
今までGItHubDesktopしか使っていませんでした。
しかし、GItHubDesktopだけではできることが限られてしまいます。
なので、今後はいろいろなコマンドも少しずつ覚えていくことにします。
Gitコマンドで躓かないための備忘録
#はじめに
共同開発中に何度も『こんなときってどのコマンド使うんだっけ?』、『エラーが表示されるけどどうしよ、、、』と慌てた自分がいたのでメモ書きが誰かの参考になればと思い記事を作成しました。#注意点
自分のメモ書き用も兼ねておりますので、間違った点はご指摘していただけると幸いです。##リモートリポジトリ(GitHub)のコードをローカルリポジトリに複製
“`
$ git clone リモートリポジトリのURL
“`##ディレクトリにリポジトリ作成
“`
$ git init
“`##ローカルブランチで作成したブランチをリモートリポジトリに登録
“`
$ git push -u origin 作成したブランチ名
“`##変更箇所をステージングにあげる
“`
$ git add .
“`##ローカルリポジトリに保存
“`
$ git commit -m “コミットメッセージ”
“`##ローカルリポジトリにmainブランチ
Gitの基本的なコマンド操作(git init~git commitまでの詳細説明)
#説明
– 前回はコマンド一覧のみを書きましたが今回から具体的な使い方の説明をしていきます。
– 本記事は初学者向けとド忘れしたときの手助けになればと書いています。## git init ->リポジトリの初期化
作成したディレクトリまで移動しgit initコマンドを叩く下記の一文が出ていれば成功です。
「Initialized empty Git repository in /Users/Desktop/git/.git/」
これでgitでバージョン管理する準備ができました。“`
% git init
hint: Using ‘master’ as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
1 commit behind “master”を解消した話
はじめに
プルリクエストをした際に、「1 commit behind “master”」が発生しているという指摘をいただいたため、その対応の記録です。
状況
恥ずかしながら、指摘を受けた段階では、何が起きているのか理解できていませんでした。
そこでブランチを見に行ったところ、以下の画像のような状況でした。
![ブランチ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1581554/25adb6fa-1f22-53fa-759c-3db791bd22d2.png)
赤線がmasterブランチ、緑線が開発ブランチです。
赤丸のところで、開発ブランチ(develop1)をmasterブランチにマージし、その後、別の開発ブランチ(develop2)を切って、次の作業を開始し、緑丸の上から3つ目のところで、プルリクエストをして、「1 commit behind “master”」が発生しました。原因
今となっては、何をしてしまったのか、よくわから
Git勉強会 入門
# ゴール & 目的
– 業務でGitを使っているがそこまでコマンドを知らない人や、これからGitを使っていきたいから少し調べ始めた人向け。
– 今後業務に役立って欲しい。# アジェンダ
– はじめに
– Gitとは
– 覚えて欲しいコマンド
– Git特徴
– Gitの開発フロー
– コミットルール
– できればやって欲しくないこと。
– Gitlab
– 終わりに# はじめに
Gitは開発でなくてはならない存在になっている。
これらを理解することがエンジニアでは必須事項なので覚えて欲しい。
既に業務で使っているため、基礎の基礎は割愛してポイントを絞った勉強会になっています。
ただ、基礎の基礎で不明点があれば、是非とも質問して欲しいです!# Gitとは
プログラムのソースコードのバージョン管理システムです。
Linuxカーネルの産みの親であるリー
gitconfigをリポジトリに置いて共有する
# gitconfig をリポジトリで共通部分を外出しして管理したい
## gitconfigファイルをリポジトリに作成
“`
vi .gitconfig
“`## リポジトリルートの`.gitconfig`をローカルのgitconfigのincludeファイルに指定する。
> どうしてもここは必要か?“`
git config include.path ‘../.gitconfig’
“`### 確認
“`input.console
git config -l
“`“`output.console
include.path=../.gitconfig
“`# 参考
[gitconfigのincludeが便利](https://qiita.com/knt45/items/51b8a8645f36fb0a6d01)
[.gitconfigはGitで管理しておいて、git config user.name/user.emailは管理したくない](https://mistymagich.wordpress.com/2016/08/31/gitconfig%
最低限知っておくべきGitコマンド
# はじめに
Git初心者が覚えておくべき必須コマンドを自分用のメモとしてまとめました。
# git init
Gitの初期化処理を行う。“`
git init
“`Git管理下に置きたいディレクトリまで移動し、上記コードを実行する事で.gitファイルが生成される。
#git remote
リモートリポジトリを関連付ける。“`
git remote add origin
“`
リモートリポジトリ(GitHubのリポジトリ等)のURLを指定し実行する事で、ローカルリポジトリとリモートリポジトリを繋げることができる。
# git status
ローカルリポジトリのgitの状態を確認できる。“`
git status
“`# git add
変更を仮登録する。“`
git add <ファイル名>git add .
“`
.を付けることで変更がある全てのファイルを対象とできる。
# git commit
仮登録
目指せ脱git初心者!gitの使えるコマンドまとめてみた!
# 記事について
完全未経験状態から独学で勉強し、今年の4月から都内一部上場企業のwebエンジニアとして働くことになりました。
月に1~2回、学んだことをアウトプットするために記事を書いていこうと思います。記事内容は実務使う技術だったり、技術書や動画で学んだことだったり、適当に興味あることを書いていきます。# 今回の背景
エンジニアを目指して勉強していた時期にもgitの重要性は理解していましたし、gitの基本的な使い方も理解していました。ただやっぱり実務だと想定外のことがあったり、複雑な状況に対応しなきゃいけないことが多いため、いろんなコマンドを使うことが多かったです。なので今回はよく実務で使うgitコマンドをまとめてみました。# 前提知識
gitの基本の使い方は[米国AI開発者がやさしく教えるGit入門講座](https://www.udemy.com/course/aigitgithub/)を通して学んでいます。そのため「コミットとは?」・「masterブランチとは?」などの基本的なこと、gitコマンドの基本的な使い方、gitとgithubを使った大まかな開発の流れについ
私はSVN脳患者なのか
「SVN脳患者から見たGit」という、Subversion ユーザが Git を理解するのが難しい現象を説明している良記事があります。
https://qiita.com/kaityo256/items/81e7951a1ca2706955a4
私は Git のことがよくわかっていないのですが、私がこの記事の言う「SVN 脳」であるせいでよくわからないのか、という点を考えてみました。
さて、この記事の結論部分には
> で、僕の場合は「コミットをパッチとみなすことができる」という点が一番ひっかかりポイントだったよ、ということです。
> Subversionではブランチ=タグ=ディレクトリなんだけど、これは本当にGitのブランチを理解する弊害になるよね・・・。
とあります。
私がここに引っかかっているかどうかというと、おそらく No です。> Subversionにとって、そしてSVN脳患者にとってマージとはスナップショット同士の比較であり、2つのディレクトリのdiffをとって、そのdiffをもとにブランチで行った修正を抽出して取り込む作業であり
たしかにこう述べられてい
Git Custom Merge Driver
# 環境
|Envrionment| Version|
|:–|—-:|
|Ubuntu| 20.04.2 LTS|
|Windows| 10.0.19041
|Git|2.25.1 |# Git Custom Merge Driverとは
Gitのマージ処理を低レベルでカスタマイズできるGitに備わっている機構のこと。
強力な反面、事故りやすいので理解したうえで利用が必要。# 作り方
1. Custom Merge Driverの設定
2. 適用ファイルの指定## Custom Merge Driverの設定
2つの方法がある。* Inline
* shDriverが呼び出される際に利用可能な変数に`%O`, `%A`, `%B`がある。他にもあるが、よくわからなかった。気になる方は[リファレンス](https://git-scm.com/docs/gitattributes)読み解いて下さい。
Driverの終了時に終了ステータスが* 0(正常)の場合、`%A`をマージ後のファイル内容として採用する。
* 0(正常)以外の場合、コンフリクトが発生した
綺麗なコミットログを作りたいときのgitテクニック
## これは何
僕は開発作業をしているとき、PRをあげるまでの開発途中は`wip`コミットに変更を記録していき、最後にコミットを仕上げていくような作業をよくします。
初めからコミットを綺麗に書きながら開発ができれば良いのですが、
https://qiita.com/suzuki-hoge/items/cc91877ce69527ced692
にあるようなコミットログを仕上げていこうと思うとどうしても最後にコミットログを整理したくなります。
この記事はこのようにgitを使うと綺麗なコミットログを作れるよ、というTipsです。
具体的にこういうコミットを作ると良いよ、みたいな話はこの記事ではしません。僕はこのような工程でPRを出す前にコミットログを作っています。
– `git rebase -i`で作業中のコミットを全て一つのコミットにsquashする
– `git reset HEAD~`で一度コミットを取り消す
– `git add -p`で作りたいコミットごとに変更をstageにあげていく
– コミットを作成する## `git rebase -i`で作業中のコミッ
gitコマンドの分岐、変更ファイルを見やすくするエイリアス(git lol)
git bashにコピーして実行してください
“`bash
git config –global alias.lol “log –graph –pretty=format:’%Cred%h%Creset -%C(bold yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –all”
git config –global alias.lof “log –name-status –oneline –graph –decorate –abbrev-commit –all”
“`## git lol
* ブランチの分岐、マージを視覚化します
![git-lol.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276579/423ae7b8-1f93-8947-ea38-e4a25f89dc61.png)## git lof
* コミット毎の変更ファイルを一覧で表示