今さら聞けないGit 2022年10月19日

今さら聞けないGit 2022年10月19日

「Repository or object not found」と表示されてプッシュができない場合の対処法

「Repository or object not found」と表示されてLFSをプッシュができない場合の対処法です。
英語の記事はありましたが日本語の情報があまり見当たらず、自分でもまた今後調べる事になりそうだと思ったので備忘録です。

Git管理アプリにはForkを使っていて、以下のようなエラーダイアログが表示されました。
赤枠には「ユーザー名/リポジトリ名」が入ってます。
![git error_2022年10月18日_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126821/271db19a-93a3-0759-c6e6-990d80c7d244.png)

検索用に文字列に起こしておきます。

“`
Git Error
An unexpected error occured while performing the git request

Uploading LFS objects: 0%(0/79),0B|0B/s, done.

Pushing to https://bitb

元記事を表示

git logコマンドを終了する方法

# git log を終了する操作

“`
git log
“`

git logを実行した場合、`半角のq`を押すことでgit logを終了することができます

元記事を表示

Git / GitHub の使い方演習【MacOS 10.15 Catalina】

Git / GitHubの使い方の勉強過程をまとめてみました。

OS環境:MacOS 10.15 Catalina (MacOS 12.6 Montereyでも確認)
git環境:git version 2.37.0

# 1. HomebrewからGitをインストールする
### 1.1 Homebrewを最新にする

“` shell:homebrewのアップデート
$ brew update #homebrewのupdate
$ brew -v #version確認
“`
brewが通らない人は“export PATH=”$PATH:/opt/homebrew/bin/” “を.bash_profileに書き込んでね(bashの場合)

### 1.2 gitをインストールする

“` shell:gitのインストール
$ brew install git #gitのインストール
$ git –version #バージョン確認
“`

# 2. Gitのパスをインストール
### 2.1 使用中のシェルを確認
“`shell
$ echo SHEL

元記事を表示

【git】ローカルにbare repository

# はじめに

これまでGithub や Bitbucket などをremote repository としてgit push していたのですが、まぁ、そういうものが使えないときもあります。ローカルに作業を残しておくために、ローカルにremote repository を作りたい(用語は合っているかな^^;)と思って調べたら、簡単にできました。のでメモ。

# 内容

確認作業は、WSL2 の ubuntu20.04 で行いました。

## bare repository を作る

適当なディレクトリにbare repository を使います。

“`
$pwd
localrepo
$ git init –bare remote.git
Initialized empty Git repository in /home/user/localrepo/remote.git/
$ ls remote.git/
HEAD branches config description hooks info objects refs
“`

とすると、remote.git という

元記事を表示

GitHubにpushできない Username for ‘https://github.com’: って訊かれる!

とりいそぎ、GitHubで問題が生じたため、投稿します。 ~~情報を希望します。~~
状況を改善したので、追記します。

# 経過

GitHubの練習のため以下を行ったが、リモートリポジトリに`push`できない。

“`
cd
mkdir gitFolder
git init
git config –global user.name “YohYasushi”
git config –global user.email “(めるあど)@gmail.com”
“`
を行った。

`gitFolder`というフォルダを作成して、ここに、`git init`したあと、`config`をいじっている流れですね。

`git config –list`では、

“`
user.name=YohYasushi
user.email=(めるあど)@gmail.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url

元記事を表示

vim で fatal: unsafe repository” が出てアップデートできない

備忘録なのでちょっと雑です・・・。

nvimでplug-vimでプラグインのアップデートを試みていたところ以下のようなエラーが発生しアップデートできなかった。

`fatal: unsafe repository`
# エラーが発生した環境
nvim(NVIM v0.9.0-dev-71-gd9a80b8e2)
Windows 10

私の環境ではたまたま上記の組み合わせだったのですが、
上記の組み合わせ以外(Linux、本家vim)でも発生すると思います。

# 原因
Git for Windows ver2.35.2 で仕様変更された影響らしい。

gitの実行ユーザーとリポジトリのフォルダの所有者が別々だとエラーが出るようになったらしい。

gitのバージョンを確認するにはCLI(コマンドプロンプト等)で`git –version`で確認できます。
“`:CLI
git –version
git version 2.36.1.windows.1
“`
ちょっと表記が怪しいですが2.35.2よりも上のバージョンっぽいです。

# 解決策
主に二つ解決策があります。

元記事を表示

Gitの内部はどうなっているのか

## はじめに

現在参画しているプロジェクトではソースコードをGitで管理していて、日々修正した結果をコミットしています。
ですが、Gitがどういう仕組みで履歴を管理しているか知りませんでした。

コマンドの使い方だけでなく内部の仕組みも理解しようと思い、調べたことをまとめました。

## Gitオブジェクト

Gitでは以下4種類のオブジェクトでファイルの変更履歴を管理しています。
これらをまとめて**Gitオブジェクト**と呼びます。

* blobオブジェクト
* commitオブジェクト
* treeオブジェクト
* tagオブジェクト

Gitオブジェクトについて順に解説していきます。

## リポジトリを作成

`commit_test`リポジトリを作成します。

“`sh
$ git init commit_test
$ cd commit_test
“`

`commit_test`フォルダ内に`.git`フォルダがあります。
`.git`フォルダ内は以下の様な構成になっています。

“`sh
$ ls -1 .git
HEAD
branches
config

元記事を表示

個人的によく使ってるGitコマンド集

# はじめに
会社ではGitをGUIツールに頼らずに直接コマンドを叩いて操作しています。
ただコマンドを忘れて検索することも多いので、よく使うコマンドを基本的なものを含めて自分用にメモすることにしました。

私が日頃よく使うものを適宜、追加・更新していきます。

# 個人的よく使うGitコマンド

## git checkout
checkoutは機能が多いです。それもあって最近はGit公式側がgit switch, restoreとして機能を準備しています。

### ブランチ切り替え
|コマンド|機能|
|–|–|
|git checkout ${branch}|ブランチの切り替え|
|git checkout -b ${branch}|ブランチの作成と切り替え|

### ファイル操作(変更取り消し・取得)

|コマンド|機能|
|–|–|
|git checkout ${path}|ファイルの変更の取り消し|
|git checkout ${branch} — {file_path}|指定ブランチからファイルを取得|

## git status

|コマンド|

元記事を表示

Bitbucket Cloud recently stopped supporting account passwords for Git authentication.

### ※環境はMacのSourcetreeを想定
[httpsのベーシック認証は廃止](https://bitbucket.org/blog/deprecating-atlassian-account-password-for-bitbucket-api-and-git-activity “Deprecating Atlassian account password for Bitbucket API and Git activity”)になったのでsshで接続する。

ssh keyが無い場合はこちらを参考に
https://support.atlassian.com/ja/bitbucket-cloud/docs/set-up-an-ssh-key/#Set-up-SSH-on-macOS-Linux

公開鍵をBitbucketに登録
https://support.atlassian.com/ja/bitbucket-cloud/docs/set-up-an-ssh-key/#Step-3.-Add-the-public-key-to-your-Account-setting

元記事を表示

【Docker】コンテナに最新のGitをインストールする方法

## 最新のGitをインストールする

Debianの場合には最新版のGitをインストールするためにはソースからインストールする必要があります。
そのため`Dockerfile`に以下のように記述します。

“`Dockerfile:Dockerfile
# syntax=docker/dockerfile:1

ARG GIT_VERSION=2.38.0

RUN <<-EOF set -eu # 必要なパッケージをインストール apt-get update -qq apt-get install -qy libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev cd /usr/local/src # Gitのソースコードをリポジトリからダウンロード wget https://github.com/git/git/archive/refs/tags/v${GIT_VERSION}.tar.gz # ビルド tar -xzf v${GIT_VERSION}.tar.gz c

元記事を表示

.gitignoreの使い方

# .gitignoreとは
Gitによる追跡の対象外となるファイルを書き込む設定ファイルのこと。
.gitignoreにファイルを記述すれば、“git add“時にインデックスに追加されないようになる。
記述は後に書いた除外設定が上書きをしていくので注意。

# 記述
“`
# コメントアウトの記述可能

# 追跡しないファイルを指定
.gitignore
.env
.htaccess

# ディレクトリや、ディレクトリ内のファイルも指定可能
config/
config/file.html

# ワイルドカード、文字クラスも使用可能
.ht*
*.jpg
file_0[1-9].html

# 否定表現の!も使用可能
# 特定のファイルのみ追跡
!/only-track.html
!*.jpg
“`

## 参照
– [.gitignore の書き方。ファイル/ディレクトリの除外](https://www-creators.com/archives/1662)
– [gitignoreを設定して無視するファイルを指定しよう](https://www.sej

元記事を表示

ABC273 E問題を Git で処理(※TLE注意)

https://atcoder.jp/contests/abc273/tasks/abc273_e

SAVE と LOAD の処理を高速にする方法を考えていたら、「これって **Git みたいなものを作れ** ってことか」と思い至った。

だったら **本物の Git を使っても解けるのでは?** と思い、やってみた。残念ながら例題以外は全て TLE になってしまったので、正しく解けているかは不明。

## コード
[公式解説](https://atcoder.jp/contests/abc273/editorial/5023)の内容を Git の機能に置き換えていく。

* 根付き木 → コミットグラフ
* 頂点 → コミット
* 根 → initial commit
* 「コマ」 → `HEAD`
* ノートの各ページ → タグ(またはブランチ名)

あとは `HEAD` をひたすら動かせばいい。値はコミットメッセージに保存することにして、ファイルのバージョン管理を省く。

“`bash
#!/bin/bash
set -eu

# 適当な作業用ディレクトリを作り移動してお

元記事を表示

Git コマンド集

# Git command集

### ファイルの追加、コミット

“`bash
git add ファイル名
“`

“`bash
git commit -m “コメント”
“`

### ファイルをアップ

“`bash
git push origin ブランチ名
“`

### git log

“`bash
git log
“`

[]()

ツリーの整形

“`bash
git log –graph –pretty=format:”%h %ad %s”
“`

### rebase

“`bash
git rebase ブランチ名 // 起点となるブランチ
“`

[これで完璧! 図解でわかるgit rebaseの2つの使い方! | 侍エンジニアブログ](https://www.sejuku.net/blog/71919)

### 変更を退避させる(stash)

“`bash
git stash save “コメント”
“`

退避の一覧確認

“`bash
git stash list
“`

退避をもとに戻す

“`bash
git

元記事を表示

直前に誤ってコミットした時の対処法

# はじめに
**直前に**誤ってコミットしてしまった時の対処法をまとめました。

# 背景
本来ならAというブランチで作業しないといけない所、Bというブランチで作業してコミットをしてしまいました・・・。
そのため、直前にコミットしてしまったログを取り消したいと思い、調べて実行した結果を以下にまとめています。

:::note warn
リモートリポジトリにpushしていない場合にのみ、以下のコマンドを使用してください。
:::

# gitコマンド
“`shell:ターミナル
$ git reset –hard HEAD^
“`

上記のコマンドを、該当リポジトリの誤ってコミットしたブランチ上で入力すると、**直前のコミットを取り消すことができます。**
実際に、以下のコマンドを入力して、コミットのログを確認してみましょう。

“`shell:ターミナル
$ git log
“`

## 実行前
![スクリーンショット 2022-10-16 8.44.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

ソース管理からGit操作ができないときは

# はじめに

Windows 10からWindows 11にアップグレードしようとするも10回くらい失敗したのでクリーンインストールしました。
それにともなってVSCodeやらGitをインストールしました。

なんと以前のワークスペースをVSCodeで開くと、`ソース管理`に「リポジトリを初期化する」というボタンが表示されているではありませんか。
ターミナルからgitコマンドは呼べるからインストールは問題ないようだし、VSCodeの設定で直接git.exeの実行ファイルのパスを指定しても変わらないのはなぜなんでしょう?

# VSCodeがGitリポジトリを認識しなくなった!

その原因はGitのバージョンアップによるものかもしれません。

どうやら[Git 2.30.3](https://github.com/git/git/blob/master/Documentation/RelNotes/2.30.3.txt)に[CVE-2022-24765](https://github.blog/2022-04-12-git-security-vulnerability-announce

元記事を表示

git addしたファイルの差分を確認する方法

はじめに

git addしたファイルの変更箇所を改めて確認したいことがあったので、確認方法を備忘録としてまとめようと思います。

git add後は”git diff –cached”を使用する

下記のようにaa.rbファイルを変更してgit addした場合、

~~~aa.rb
put “before”
~~~

~~~aa.rb
#beforeをafterに変更し”git add”でステージングエリアに追加
put “after”
~~~

`aa.rb`の変更箇所(差分)は、下記のコマンドで確認することができます。
~~~
git diff –cached {filename}
~~~

~~~bash
~ % git diff –cached aa.rb
diff –git a/aa.rb b/aa.rb
index e21c5fa..e12c435 100644
— a/aa.rb
+++ b/aa.rb
@@ -1 +1 @@
-put “before”
+put “after”
~~~

git add前は”git diff”

下記のように

元記事を表示

【Git】ステージした変更を取り消す方法

## ステージングのみ取り消す

変更内容はそのままにステージングのみ取り消すには以下を実行します。

“`zsh
git restore –staged パス
“`

`test.txt`を作成して試しに実行してみます。
作成後に`git add test.txt`を実行した状態が下の画像です。

![5C0748CF-728C-4AC0-890B-7B5EEE254B94.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342443/ae503746-27d9-770f-ad8b-f23c6742dc4e.png)

「ステージされている変更」に`test.txt`があります。
ターミナルでコマンドを実行し取り消します。

“`zsh
git restore –staged test.txt
“`

![4C590208-CF47-49C4-B49F-11C8028F5F09.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

eclipseからgithubリポジトリへのプッシュ時に「(https://XXXXX.git: 未認証)」

# 状況

eclipse で作成したプロジェクトをリモートリポジトリにプッシュ時に発生
github のユーザ名(メールアドレス)とパスワードを入れるとプッシュが出来ず、3回繰り返すと表題のエラーが発生

# 結論

**Personal Token が必要だったというだけ。**
元々 SourceTree で別プロジェクトを git 管理していたものの、トークンを作った記憶がなかったため選択肢に出てこなかった・・・
以下作成までの手順

# 手順

Github にログインし、右上のメニューから「setting」を選択
![スクリーンショット 2022-10-15 10.45.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269525/69bbfa4a-c134-5a81-baab-b6cb8e54ca0d.png)

左のメニューから「Developer setting」を選択
![スクリーンショット 2022-10-15 10.45.56.png](https://qiita-image-

元記事を表示

WSL2環境のGitでp4mergeを使用する

# はじめに
WSL2環境でp4mergeを使用するときに設定に少し手間取ったのでメモ

# git configの設定

“`bash:p4merge設定用 git configコマンド
// diffで使用するツールを指定
git config –global diff.tool p4merge

// difftoolで実行するexeのパスを設定
git config –global difftool.p4merge.cmd ‘/mnt/c/Program\ Files/Perforce/p4merge.exe $(wslpath -aw $LOCAL) $(wslpath -aw $REMOTE)’

// difftoolを実行した際に表示されるプロンプトを表示しないようにする設定
git config –global difftool.prompt false

// mergeで使用するツールを指定
git config –global merge.tool p4merge

// mergetoolで実行するexeのパスを設定
git config –glo

元記事を表示

GlueのGit Integrationを試してみた

# 背景・目的
GlueのGit統合が、[こちら](https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-glue-git-integration/)の記事で発表されましたので試してみたいと思います。
なお、今回使用するリポジトリはCodeCommitを使います。

# まとめ
– Glue がGitまたはCodeCommitと統合された。
– 操作はGlue Studioまたは、AWS CLIから可能

# 概要
## Git統合とは?
GitHubと AWS CodeCommitを使用して、Glueジョブの変更履歴を維持し、デプロイできるとのこと。また、CodeDeployと組み合わせてジョブのデプロイまで簡単にできるようになりました。
(以前は、独自にコード管理システムと統合をセットアップしてデプロイしていました。)

具体的には、以下の事ができるようです。
– バージョン管理システムとの統合
– AWS CodeCommit および GitHub
– AWS Glue Studio で AWS Glue ジ

元記事を表示

OTHERカテゴリの最新記事