- 投稿日:2021-03-05T19:32:42+09:00
リモートブランチをローカルブランチに反映する方法
- 投稿日:2021-03-05T18:23:25+09:00
Windows PCでGit管理(git init --bare)
私がGitだ。
やりたかったこと
チームで使ってるちょっとしたスクリプトってあると思います。
気軽にRepositoryを作れるGitHub環境や共有サーバにGitBucket等が立っている方はそこで管理できますが、
そうでもないときに、本当にちょっとしたツールを管理したいと思ったのでごにょごにょすることにしました。Dockerあるじゃん。
その通りです。
GitBucketやGitLabを立てれば、ブラウザで開いてREADMEを読んだりすることもできます。
(本記事の手順ではCLI(GitBash等)でしか見れません)
ただ、ディスクの永続化を考えたり、(想像ですが)メモリ・CPUをなるべく食ったりしない方が嬉しいなと思いこれもアリかなと思いました。正直推奨はしません。手段の1つです。
免責事項
本記事の手順に関するトラブルについては一切の責任を取りません。
特に途中で、Windows PC上のフォルダを共有化する手順がありますが、共有範囲は十分に検討した上で各自の自己責任で設定してください。環境
- Windows10
- GitBash
構築手順
Repositoryを作る
Repositoryとなる任意のフォルダ(例:
C:¥¥git¥XXX_team¥repository
)を新規作成します。
この時、フォルダ名に.git
をつけると情緒を感じることができます。GitBash.$ mkdir /c/git/XXX_team/repository次に、作成したフォルダをエクスプローラで開いてプロパティから共有化してください。(チームメンバが参照できるようにする)
【★免責事項をご確認ください!!】そして、そのフォルダをGitのRepository化します。
GitBash.$ cd /c/git/XXX_team/repository $ git init --bare --shared=true Initialized empty shared Git repository in C:/git/XXX_team/repository/資材をRepositoryに入れる
既にある資材(例:
C:¥¥work¥benri-tool
)を作ったRepositoryに格納します。GitBash.$ cd /c/work/benri-tool $ git init $ git add . $ git commit -m "first commit" // 任意のコメントをつけてください。 $ git remote add origin "C:¥git¥XXX_team¥repository" // ダブルクォーテーションを忘れずに # git push -u origin master (前略) To C:¥¥git¥XXX_team¥repository * [new branch] master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.みんなで使う
チームメンバのPCからCloneしましょう。
GitBash.$ git clone file://${PC名}/git/XXX_team/repository
- 投稿日:2021-03-05T16:30:32+09:00
Android開発でAPIキーを隠蔽してGitHubに上げる
この記事の目的
Android開発でWebAPIを利用する場合に、APIキーをGitのコミットログに含めずに扱う方法を紹介する。
手順
gradle.propertiesにAPIキーを記述
APIキーを記述
myApiKey=3a6...534記述したAPIキーがgitの管理化に載らないよう、
gradle.properties
を.gitignoreに含めておく。一度gitに
gradle.properties
を上げたことがある場合は、キャッシュを削除してからコミットするBuildConfigの作成
app/build.gradle
にbuildConfigFieldを定義、android { defaultConfig { buildConfigField "String", "API_KEY", "\"${project.property("myApiKey")}\"" } }ビルドするとBuildConfig.javaに追加されている
public final class BuildConfig { ... public static final String API_KEY = "3a6...534"; }APIキーの取得
BuildConfig.MY_API_KEY
でキーの文字列を取得class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { ... Log.i("MYTAG", BuildConfig.MY_API_KEY) } }
- 投稿日:2021-03-05T11:46:44+09:00
git checkout -bについて
- 投稿日:2021-03-05T11:27:09+09:00
git pushしたら、! [rejected] main -> main (fetch first) error: failed to push some refs to "リモートリポジトリ名" で怒られた。
原因
下の流れで作業したため怒られました。
①mainからブランチを切って作業
$ git checkout -b 作業ブランチのち、色々実装して、push
② ①と並行して、githubのmainブランチのreadmeの内容を変更
※ここが不味かった
③mainチェックアウト
$ git checkout main④作業ブランチをマージ
$ git merge 作業ブランチ⑤mainブランチをpush
$ git pushここで
! [rejected] main -> main (fetch first) error: failed to push some refs to "リモートリポジトリ名"
と怒られる。対処法
$ git pull すれば、解決はするのですが、そもそもgitの構造を理解していなかった。
追跡ブランチの存在
リモートのmainとローカルのorigin/mainは別物ということを知らず、全く意識していませんでした。
ローカルのorigin/mainは、追跡ブランチと呼ばれているそうで、リモートのmainブランチを追跡しています。
pushする際に、リモートブランチをローカルの追跡ブランチに差分があると、(共通のコミット上に異なるコミットが追加されている状態)、pushできない。
今回、push出来なかったのは、リモート側のブランチに余計なコミットがあったため、push出来なかった。git pullするとどうなるのか
git pullすると、リモートのブランチの内容が追跡ブランチに反映されます。そうすることで、差分がなくなり、pushできるようになります。
おまけ
git pullだけでもいいですが、省略せずに書くと、このようになります。
$ git pull origin main:main # git pull <ローカルのブランチ名>:<リモートのブランチ名>
- 投稿日:2021-03-05T02:05:36+09:00
gdriveを使ってgoogleドキュメントとローカルのマークダウンファイルを同期させて、アップロードなどを自在に行えるようにする
要件、目的
gdriveを使ってgoogleドキュメントとローカルのマークダウンファイルを同期させて、アップロードなどを自在に行えるようにする
タスクフロー、未完
ログインできるようにする
gdrive listでoauthできるように
google ドキュメントなどを接続log
gdriveのインストール
疑問点、課題点
もしこれの最初のoauthでgoogleにブロックされたのちに設定を変更して入れるようになった人がいたら教えていただきたいです、よろしくお願いいたします。
参考リンク
aouth関係
https://shiyotsuki.hatenablog.com/entry/2020/02/03/234507
https://support.google.com/a/answer/6260879?hl=ja予備フローのskickaについて
https://dev.classmethod.jp/articles/skicka-google-drive-cli/
https://frudens.jp/skicka-google-drive-cli-tool-recommended/https://nelog.jp/hackmd
https://www.google.com/search?q=%E3%83%9E%E3%83%BC%E3%82%AF%E3%83%80%E3%82%A6%E3%83%B3+google&rlz=1C5CHFA_enJP935JP935&oq=%E3%83%9E%E3%83%BC%E3%82%AF%E3%83%80%E3%82%A6%E3%83%B3%E3%80%80google+&aqs=chrome..69i57j0i8i30l6.5764j1j7&sourceid=chrome&ie=UTF-8
https://qiita.com/xx2xyyy/items/451f3e14211d4d3acb1e
https://uxbear.me/markdowndoc/
https://www.subthread.co.jp/blog/20160609/
https://www.google.com/search?rlz=1C5CHFA_enJP935JP935&sxsrf=ALeKk03wt4o0ci8GWxbNAolJ3r6DDmjnrQ:1614874013997&q=markdown+google%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88+%E5%A4%89%E6%8F%9B&sa=X&ved=2ahUKEwiy-Ne_gpfvAhVBUd4KHW8YCwwQ1QIwDHoECBAQAQ
https://qiita.com/mocketech/items/4cd42ac1174dec8858e7#:~:text=%E5%A4%89%E6%8F%9B%E6%89%8B%E9%A0%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%AF%E3%80%81Typora,%E3%81%A8%E3%81%84%E3%81%86%E6%89%8B%E9%A0%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82
https://www.google.com/search?rlz=1C5CHFA_enJP935JP935&sxsrf=ALeKk02EegaS6Y55D8cfAbeerZDj7fTK_A%3A1614876368872&ei=0A5BYOzaNIHnwQP627boCA&q=gdrive+cli+mac&oq=gdrive+cli+mac&gs_lcp=Cgdnd3Mtd2l6EAMyBQgAEM0COgcIIxCwAxAnOgkIABCwAxAHEB46BwgAELADEB46CQgAELADEAoQHjoECAAQEzoGCAAQHhATOgUIIRCgAToECCEQFVD9O1joQmClR2gBcAB4AIAByAGIAesEkgEFMS4zLjGYAQCgAQGqAQdnd3Mtd2l6yAEIwAEB&sclient=gws-wiz&ved=0ahUKEwjsgsqii5fvAhWBc3AKHfqtDY0Q4dUDCA0&uact=5
https://takuya-1st.hatenablog.jp/entry/2016/07/06/034412
https://rimever.hatenablog.com/entry/2019/10/18/060000_1
https://github.com/google/skicka
https://qiita.com/neustrashimy/items/5973ccefbffdbc243abc
https://github.com/prasmussen/gdrive