20210305のGitに関する記事は6件です。

リモートブランチをローカルブランチに反映する方法

はじめに

自身の備忘録のためにまとめています。

リモートブランチの確認方法

$ git branch -r

リモートブランチをローカルブランチに反映する方法

$ git checkout -b <ローカルブランチ名> <リモートブランチ名>
$ git checkout -b example origin/example
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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)
    }
}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git checkout -bについて

git checkoutのオプション-bについて忘れないように。

git checkout -b

ブランチ作成とブランチに移動を一つにまとめたコマンド

git checkout -b test 

つまり

git branch test
git checkout test

と等価

ブランチ系のコマンドを一応整理

リポジトリ内のブランチの確認

git branch

ブランチ作成

git branch {ブランチ名}

ブランチ削除

git branch -D {ブランチ名}

ブランチに移動

git checkout {ブランチ名}
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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 <ローカルのブランチ名>:<リモートのブランチ名>
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む