- 投稿日:2020-07-24T23:04:16+09:00
Xcode11でerror: invalid object 100644 が出たとき
状況
やったこと
①ググった
「error: invalid object 100644」でググったところ、この記事がヒットした
https://stackoverflow.com/questions/33053917/xcode-7-created-new-branch-commit-fails質問者の方はいろんなサイトにこの質問を投げかけたけど有効な回答は得られたなったみたい
だけど、ローカルのXcodeプロジェクトを削除した後に最新のリポジトリを複製して、変更点だけをまた書き換えたらいけたらしい②やってみる
複製しました
いろいろ変更しました
で、全て置き換えました
③いけた
いけました
最後に
最後の方めっちゃ雑になっちゃってすいません
出すかどうか迷ったんですけど、記事が圧倒的に少なかったので一応あげておきます
参考になったら幸いです環境
Xcode11.6(11E708)
- 投稿日:2020-07-24T22:34:25+09:00
git tagをすべて削除する
以下を実行するとローカル・リモートすべてのタグを削除する
#Delete local tags. git tag -d $(git tag -l) #Fetch remote tags. git fetch #Delete remote tags. git push origin --delete $(git tag -l) # Pushing once should be faster than multiple times #Delete local tags. git tag -d $(git tag -l)
- 投稿日:2020-07-24T22:14:56+09:00
GitHubで複数アカウントを使い分けることに手こずったらみる記事
GitHubで複数アカウントを使い分けようとしたら、どの記事も小出しにしか情報を出していなかったため
(初心者なので全部教えてもらわないとできないため)
包括的にまとめます。今後はSSHでアクセスしようと覚悟を決める
あれです。git cloneとかするとき、何も考えずHTTPSでやってたアクセス方式です。
これからは、「Use SSH」ボタンをクリックして、SSH接続しましょう。
SSHとは?
そもそもHTTPSとSSHの違いは何でしょうか。
この問題は、HTTPSはHTTPというテキストデータをSSLという暗号技術によってセキュアにしていることから(HTTPS←HTTP+SSL)、SSLとSSHの違いに置き換えることができます。
←初心者はそもそもここからわからない。しかもSSLとSSHの名前似すぎ。これに関しては、以下の記事などで詳しく書かれています。
- ここが違うよSSHとSSL! - Qiita
- 「SSL」と「SSH」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典SSHの鍵を作成し、GitHubに登録する
SSH鍵の作成方法について、色々な方がまとめてくださっています。
個人的に一番わかりやすかったのは以下の記事です。補足として、SSH鍵自体はGitHub以外でも使うことがあるらしいので、ターミナルで作成することができます。
作成されるとホームディレクトリ(ターミナル立ち上げ時のカレントディレクトリ)に「.ssh」という隠しファイルができます。
この中にある「config」というのがとてつもなく大事なファイルです。
もし、2つのアカウント(仕事用とプライベート用)を使い分けたいのであれば、以下の構成がおすすめです。.ssh/ ┣config ┣private/ ┣id_rsa ┗id_rsa.pub ┗job/ ┣id_rsa ┗id_rsa.pub上記リンクの補足として、ssh鍵をコピーするときは
=mail@hoge.com
のイコールマークまでコピーしましょう。sshキー情報を.ssh/configに設定する
次のステップは、以下の記事が秀逸です。
- 一つのPC上で複数のgitアカウントをうまいこと使い分ける | 前菜の備忘録configファイルの変更は、私の場合ターミナルでvimコマンドで編集しました。
vimにまだ慣れていない方は、ググってみてください。とりあえずiとwq使えばなんとかなります。% vim ~/.ssh/config以下のように設定しました。
Host github github.com HostName github.com User git Port 22 IdentityFile ~/.ssh/git_job/id_rsa TCPKeepAlive yes IdentitiesOnly yes Host github-sub github-sub.com HostName github.com User git Port 22 IdentityFile ~/.ssh/git_private/id_rsa TCPKeepAlive yes IdentitiesOnly yes私の場合は「IdentityFile」のスペルが違ってずっと接続できませんでした…
接続の確認
以下のsshコマンドで、正しくGitHubと両アカウントが接続できるか確認できます。
# メイン $ ssh -T git@github.com # サブ $ ssh -T git@github-sub.com以下のように表示されれば、一見ダメなように見えますが大丈夫です。
Hi (User ID)! You've successfully authenticated, but GitHub does not provide shell access.GitHubで操作!
以上で複数アカウントを使い分けることができますが、以下のように操作時のコマンドを変えないといけません。
以下のように、サブアカウント(プライベート用アカウント)を利用する場合はgit@以下をgithub-subとする必要があります。# メイン $ git remote add origin git@github:<ACCOUNT_NAME>/<YOUR_REPSITORY>.git # サブ $ git remote add origin git@github-sub:<ACCOUNT_NAME>/<YOUR_REPSITORY>.git後は以下の記事の要領で、git configを変更しておけばOKです。
それでもエラーが出る場合
上記手順で上手くいかなかった場合、以下の記事が参考になるかもしれません。
- 投稿日:2020-07-24T19:41:42+09:00
[Git]基本操作一覧
概要
Git操作について、備忘録様に記します。
操作一覧
リポジトリを作成する
git initファイルやディレクトリをインデックスに保存
git add <ファイル名>
- -p オプション ファイルの変更箇所の一部を保存
- -i オプション インデックスに登録するファイルを対話的に検索
インデックスに追加したファイルをコミットする
git commit
- -a オプション 変更されたファイルを検出してインデックスに追加してコミット
- -m オプション コミットメッセージを指定してコミット
変更されたファイルの一覧を表示
git status変更されたファイルの差分を確認
git diffコミットログを確認
git log
- 特定のファイルをみたい場合はファイル名を指定
ファイルやディレクトリ名を変更、移動
git mv <古いファイル名> <新しいファイル名>ファイルを削除
git rm <ファイル名>管理対象ではないファイルの削除
git clean手元で変更したインデックスに登録されていないファイルを元に戻す
git checkout -- <ファイル名>インデックスに登録したファイルを取り消す
git reset HEAD -- <ファイル名>以前コミットしたファイルだけをインデックスに登録
git add -u
- 投稿日:2020-07-24T14:44:57+09:00
【Windows10】TortoiseGitを基本的な機能を使ったみた。part2
【開発環境】
Windows 10 HOME
Git-2.27.0-64-bit
TortoiseGit 2.10.0.2 - 64-bit【目次】
項目 - はじめに - git branch - git ckeckout - 最後に - 参考 はじめに
前回はgit clone,git push を行いましたが
今回はgit ckeckout,git branch あたりをやっていこうと思います。違っている箇所等があれば指摘してください。
【前提条件】
・githubに登録済で「sample2」リポジトリを作成してtest.text がある。・デスクトップに「sample2」のフォルダがある。
git branch
ローカルで自分専用の作業ルートを別に作るみたいな感じです。
個人的にはこのbranchがgit を使う中でkeyにになっている気がします。branch = (木の)枝と考えればイメージ付きやすいのでないでしょうか。
「sample2」フォルダを右クリック → TortoiseGit → ブランチを作成
新しいブランチ名を入力し、
新しいブランチで作業する場合は、「新しいブランチに切り替える(S)」にチェックする
内容を確認し「OK」一旦 「閉じる」を押下。
test.textファイルに青部分の「20200724 1320 edit」を追記します。
「sample2」フォルダを右クリック → Gitコミット
コミット先 : sample2_branch である事を確認。
メッセージ : sample2_branch と入力。
text (青文字) :ダブルクリックすると修正した差分が確認出来ます。内容を確認して「コミットしてプッシュ」。
ローカル名 : sample2_branch
リモート : 空白時はローカル名が反映されます。
別名にする時のみ入力。閉じる。
反映先のgithubをブラウザで見てみると先ほど
ブランチのプルダウンに「sample2_branch」が出来ているので選択。確かに修正したtest.textファイルに
「20200724 1320 edit」と追記されています。git ckeckout
ブランチの変更です。
作業用通路の変更みたいな感じで、このブランチの切り替えを行うと
修正したファイルの中身がそのブランチ毎に変わると考えれば
イメージしやすいのではないでしょうか?「sample2」フォルダを右クリック → TortoiseGit → 切り替え/チェックアウト
さっきまではブランチが「sample2_branch」で作業していたので
「master」に変更してみます。そして「OK」
閉じる。
その後、「test.text」を開いてみると
「sample2_branch」のブランチで追記した部分がありません。確かにブランチの切り替えが出来ているようです。
最後に
git に限らず自分の言葉や他の人に分かるように例えやイメージで説明出来れば
自分自身の理解も深まるのではないでしょうか?
(私自身出来ているかどうかは不明。。)参考
- 投稿日:2020-07-24T03:03:10+09:00
CentOS7にGit2系をyumでインストール
やりたいこと
CentOS7で普通にyumでGitをインストールすると、1.8系がインストールされます。
2系をインストールしたくていくつかのサイトを検索したのですが、書かれたままの方法だと実現できなかったので、記録のために残します。環境
CentOS 7.8
インストール
IUSリポジトリを登録
まず、IUSリポジトリを登録します。
検索した記事だと以下のコマンドがよく書かれているのですが、Cannot open
で上手くいきませんでした。# yum -y install https://centos7.iuscommunity.org/ius-release.rpm Loaded plugins: fastestmirror Cannot open: https://centos7.iuscommunity.org/ius-release.rpm. Skipping. Error: Nothing to doIUSのサイトを開き、セットアップ手順通りに実施したところ、上手くいきました。
https://ius.io/setup# yum install \ https://repo.ius.io/ius-release-el7.rpm \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmGitのインストール
それではGitをインストールします。
以下のコマンドでインストールしようとしたところ、依存関係のエラーが出ました。# yum install git --enablerepo=ius --disablerepo=base,epel,extras,updates Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package git224.x86_64 0:2.24.2-1.el7.ius will be installed --> Processing Dependency: perl-Git = 2.24.2-1.el7.ius for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: git-core-doc = 2.24.2-1.el7.ius for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: git-core = 2.24.2-1.el7.ius for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: emacs-filesystem >= 24.3 for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: perl(Term::ReadKey) for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: perl(Git::I18N) for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: perl(Git) for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: libsecret-1.so.0()(64bit) for package: git224-2.24.2-1.el7.ius.x86_64 --> Running transaction check ---> Package git224.x86_64 0:2.24.2-1.el7.ius will be installed --> Processing Dependency: emacs-filesystem >= 24.3 for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: perl(Term::ReadKey) for package: git224-2.24.2-1.el7.ius.x86_64 --> Processing Dependency: libsecret-1.so.0()(64bit) for package: git224-2.24.2-1.el7.ius.x86_64 ---> Package git224-core.x86_64 0:2.24.2-1.el7.ius will be installed --> Processing Dependency: libpcre2-8.so.0()(64bit) for package: git224-core-2.24.2-1.el7.ius.x86_64 ---> Package git224-core-doc.noarch 0:2.24.2-1.el7.ius will be installed ---> Package git224-perl-Git.noarch 0:2.24.2-1.el7.ius will be installed --> Processing Dependency: perl(Error) for package: git224-perl-Git-2.24.2-1.el7.ius.noarch --> Finished Dependency Resolution Error: Package: git224-2.24.2-1.el7.ius.x86_64 (ius) Requires: emacs-filesystem >= 24.3 Error: Package: git224-2.24.2-1.el7.ius.x86_64 (ius) Requires: libsecret-1.so.0()(64bit) Error: Package: git224-2.24.2-1.el7.ius.x86_64 (ius) Requires: perl(Term::ReadKey) Error: Package: git224-perl-Git-2.24.2-1.el7.ius.noarch (ius) Requires: perl(Error) Error: Package: git224-core-2.24.2-1.el7.ius.x86_64 (ius) Requires: libpcre2-8.so.0()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest以下のコマンドで依存パッケージも含めてインストールします。
# yum install git224-2.24.2-1.el7.ius.x86_64途中でkeyのインストールが聞かれるので
y
を押します。Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7 Importing GPG key 0x4B274DF2: Userid : "IUS (7) <dev@ius.io>" Fingerprint: c958 7a09 a11f d706 4f0c a0f4 e558 0725 4b27 4df2 Package : ius-release-2-1.el7.ius.noarch (@/ius-release-el7) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-IUS-7 is this ok [y/N]:インストールが成功しました。バージョンを確認します。
# git version git version 2.24.2IUSリポジトリを無効にしたい場合は、以下のコマンドを実行します。
# yum-config-manager --disable ius
- 投稿日:2020-07-24T01:48:41+09:00
Git 公式マニュアル
HEADって何? reset て何?
分からないことがある度、Googleで検索するものの、なかなかピッタリのサイトが見つからない事が多い。公式マニュアルは難しと思い敬遠していましたが、以外と分かりやすく、びっくりしたので、興味のある方は是非、ご覧になってください。
https://git-scm.com/book/ja/v2