今さら聞けないGit 2021年12月01日

今さら聞けないGit 2021年12月01日
目次

Herokuデプロイ奮闘記①(Django:Windows)

2021年日本は火事場の馬鹿力で社会の荒波の中、スライムとして転生しひとときの…ボケ突っ込みの前振りはさておき、キカガクさんでdjangoとHerokuを使うことになり、その一方で下記背景もあったため最新に近い情報でいろいろ出来ないかと模索した結果、とりあえずファーストステップはクリアしたので、掲載・情報共有したいと思います。一助になれれば幸いです。

環境:Windows11
   Python 3.10.0
   git 2.33.1
   heroku 13.5
   (pythonライブラリはrequirements.txtにて記載)

背景
https://devcenter.heroku.com/articles/python-support
にてpython runtimeのサポートversionが3.10だったためいけないか
試行錯誤したいと思いました。あと、Windows11PCの方が速そうかな(;^_^Aと。

0.準備
Visual Stadio Code(以後vscode)をインストールして下さい。

1.pythonのインス

元記事を表示

バージョン管理システム(GitとSVNの違い)

## はじめに
開発の現場ではどのようなバージョン管理システムを利用するのがよいでしょうか。
アプリケーションはソースコードを含めたファイルの集合によって作られています。
開発の現場ではファイルの変更も頻繁に、かつ複数名で行われることが多いです。

そうなると大変となるのがソースコードの管理です。

この記事ではバージョン管理システムの導入を検討している方のためによく聞かれるGitとSVNの違いについてエンジニアの視点から伝えします。

## バージョン管理とは…
バージョン管理システムとはソースコード等のファイルを管理するシステムです。
いつ、だれが、どこにファイルを作成したか、また更新を加えたのか、などの過去のバー所を保持することができます。
障害や要望が発生した際にある時点のバージョンまで遡ることが容易になります。

また、同じソースコードに対して複数人が同時に作業を行ってもソースコードの最新版を見失わないようになります。

GitもSVNも共にバージョン管理システムであり、古典的なバージョン管理システムであるCVSからの流れを汲んでいます。

## GitとSVNの違い

元記事を表示

git 初学者に教えたい git と github の tips

## はじめに

この記事は 某社の Advent Calendar 1日目の記事です。
こんにちは。 [mirko](https://qiita.com/mirko-san_fp) です。

## この記事で書くこと

この記事では、筆者が「 git / github を初めて使う人に、とりあえず深く考えないで初めから設定しておいてほしい…!」と思っていることを書きます。
git の基本操作などについては省略しています。

## git の tips

### git 2.28.0 以上をインストールして、デフォルトブランチ名を main にしよう

Windows マシンをご利用で Git for Windows で Git を新しく入れる方などは自動的に最新版が入るかと思うのであまり考慮しなくていいですが、 mac や linux の git がもともと入っているディストリビュージョンをご利用の方は「あっ、もう入っているし新しく入れなくていいじゃん」と思うこともあるかと思います。
ですが、後述する「デフォルトブランチ名を master から main に変更する社会的流れ」を踏

元記事を表示

共有フォルダの開発を振り返りGitのありがたみを再確認する

この記事は[岩手大学 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/iwate-u)の記事です!

https://qiita.com/advent-calendar/2021/iwate-u

## 記事を書こうと思った経緯

僕が大学生のころ、Git を使わずチーム開発を行っていたときがありました。
今となっては Git は当たり前のように使っていますが、当時を振り返って Git のありがたみを再確認しようという記事です。
また、後輩に Git を使って開発したほうが苦労しないよというモチベーションもあります。

## 当時の運用

僕の大学では、ユーザーごとにディレクトリが切られていて、その中に各学生が好きなデータを読み書きできていました。そして、自分の管理下のディレクトリ内でパーミッションを設定することで他の学生も読み書きできるようになります。

これを使ってアプリケーションのファイルをディレクトリに入れておき、各開発メンバーがローカルにコピー、変更後に上書きで保存するようにしていました。

もちろんい

元記事を表示

globalにgitでignoreをsetする手順

# やり方
git環境は整っていることが前提

## ファイルを作る

“`zsh
touch $HOME/.config/git/ignore
“`

## ファイルに書き込む

“`:ignore
.DS_Store
“`

### 拡張子指定で一括

“`:ignore
*.code-workspace
“`

## 試してみる

https://git-scm.com/docs/git-config#Documentation/git-config.txt-coreexcludesFile
https://git-scm.com/docs/gitignore#_description
が正しければ,**これだけでパスは通っているはず**である,試しに動かそう

“`:man_gitconfig

Defaults to $XDG_CONFIG_HOME/git/ignore.
If $XDG_CONFIG_HOME is either not set or empty,
$HOME/.config/git/ignore

元記事を表示

githubからwebhookで自動pullが失敗する

# 現状
wordpressのプラグインで自動更新するもの(wordfence)を
git管理下に含めていた。
またwebhookを利用していて本番でもgit管理をしている状態で
gitpullをしている中でadd前の編集されたファイルができるので
コンフリクトを起こし自動プルが失敗している状態。

# add前の編集をなかったことに

“`removeadd.sh

$ git checkout .

“`

このコマンドでdeletedされたファイルやmodifiedされたファイルが元に戻せます。

# Untracked filesが残る
git checkout .ではUntracked filesが残っていると思います。
Untracked filesが残っている場合は
git cleanもしくはgit rmで一つづつ削除する必要があります。
git cleanを実行する場合は注意が必要です。
必ずパスを指定して削除範囲を最小限に絞りつつ
以下のコマンドで事前確認をしましょう。

“`cleann.sh

$ git clean -n

“`

削除され

元記事を表示

git stash apply / popを間違えたブランチにしてコンフリクトして立ち往生した時

`git stash apply`を誤って、意図していないブランチに実行してしまい、コンフリクトが起きて、「コンフリクト解消しないと先には行かせねぇ…」と迫られ、二進も三進も行かなくなってしまいました。

ググれば秒だろうと思ってやってみたいくつかの対策が、意外にも空振りに終わってちょいと困ってたので、最後にうまくいった方法をメモ。

“`
git reset –hard
“`

いつものあの平和な日々が帰ってきた。

一応ドキュメントはこれっぽいです↓

https://git-scm.com/docs/git-reset

(追記)
優しい弊社の先輩が本記事を見て声をかけてくれました。

`git stash apply`ならstashに変更履歴が残っているので本当に実行したかったブランチでやり直せば事なきを得ますが、`git stash pop`の場合変更履歴はstashから無くなってしまうので、まずいかもとのこと。
この場合は一回コンフリクトをマージしてコミットしてしまう方がいいそうです。そうすれば履歴は残るので、後で`git reflog`でgitログを追えば取り

元記事を表示

M1MacのHomebew3で入れたgitのdiffにdiff-highlightを反映

[検索する](https://www.google.com/search?q=mac+git+diff-highlight)といっぱい出てくるのですが、そこに`diff-highlight`が無いんですよね。結論を言うとHomebrewのインストール先が変更されてたのでパスが変わったようです。

M1MacのHomebewはインストール先が`/usr/local/bin`から`/opt/homebrew/bin`に変わったようです。そういえばインストールした時に`~/.zprofile`に`eval “$(/opt/homebrew/bin/brew shellenv)”`を書けって出ましたね。

以前は`/usr/local/share/git-core/contrib/diff-highlight/diff-highlight`を実行できるようにして`pager`に指定していたのですが`/opt/homebrew/share/git-core/contrib/diff-highlight/diff-highlight`を指定しないとダメなようです。

パスの通ってるとこにシンボリッ

元記事を表示

Azureを利用したCICD構築

#はじめに
今回はAzureを利用してCICDを構築しようと思います。
構築するまえにCI/CDについて説明します。

#CI/CDとは?
![화면 캡처 2021-11-30 005330.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528839/1fe43541-0f1a-c7cd-aaa8-b7fd92b0bd91.png)
アプリケーションの構築、テスト、および展開の自動化を実施することにより、
開発および運用アクティビティとチームの間のギャップを埋めることです。

##CI(continuous integration)
継続的インテグレーションと言う意味です。
CIとは継続的にクオリティコントロールを適用するプロセスを実行することを言います。
最小限の努力で新しいコードを配布することを目指しています。

多数の開発者がバージョン管理ツール(ex. Git, SVNなど)を共有して使用する環境にCIが必要です。
継続的に運用するサービスや開発中のサービスに機能追加するさいにコミットしてレポジ

元記事を表示

Gitまとめ

## Gitまとめ

### チェックアウト
今いるコミットを移動する。
ブランチを移動するときにも使う。

“`bash
git checkout コミットID
“`
今時分がいるブランチは「*」をつけて表す。

### フォーク・クローン
#### フォーク
他の人が公開しているリモートリポジトリを、自分のアカウントにコピーすること。
#### クローン
リモートリポジトリを自分のPC(ローカル)にダウンロードすること。

“`bash
git clone リモートリポジトリのURL
“`

※ただし実際の開発現場では、フォークせずに1つのリモートリポジトリを複数人が直接クローンして作業することが多い。不用意にリポジトリが分散するのを防ぐため。

### マージ
ブランチを取り込むこと。
マージはコミットで表される。

“`bash
# ブランチAにブランチBを取り込む
git checkout ブランチA # マージコミットを作りたいブランチに移動
git merge ブランチB
“`

### push
ローカルリポジトリで起きた変更をリモートリポジトリに反映する。

元記事を表示

【Git】git pullを取り消したいときはgit resetじゃなくgit revertを使おう

##git resetは基本使わない

間違えて“`git pull“`しちゃったけどやっぱり取り消したいとき、
調べると“`git reset –hard“`をすればいいよ!という記事をよく見かけた。

基本的に“`git reset –hard“`は(複数人での開発のときは特に)
ログが変わってしまうため使わないほうが良い。

##git revertを使おう

“`git revert“`は取り消したいコミットを打ち消すコミットを作成するので
コミットを消したログもちゃんと残せる。

##参考

https://qiita.com/chihiro/items/2fa827d0eac98109e7ee

元記事を表示

[初心者向け]卒論(Word)の変更履歴をgitで管理しよう

# はじめに
– 変更履歴を保存せずにWordファイルに内容を上書きするのは**危険**である。
– 内容を消した状態で保存すると元に戻せない。Wordファイル自体を消してしまうと元に戻せない。

## あまり望ましくない対策
– Wordの**校閲ツール**で変更履歴を保存
– 共同編集する校閲ツールとしては非常に優れているが、いくつか欠点がある。
– (おそらく)**複数回前の履歴一覧**を見ることができない。
– Wordファイル自体を消してしまうと**元に戻せない**。
– 図表番号が反映されない**バグ**がある。
– バージョンごとに**新しいファイル名で保存**する。
– `卒論_1章_ver1.docx`、`卒論_1章_ver2.docx`、…みたいな感じ
– 保存する**手間**がかかる。**容量**がひっ迫される(Dropbox等の保存容量が制限されているクラウドストレージを用いている場合は困る)。
– 非常に**細かい変更履歴管理**をしづらい(ファイル数が増えるため)
– **何を変更し

元記事を表示

[Git] setsockopt IPV6_TCLASS 8: Operation not permitted:が表示される

######Gitで`setsockopt IPV6_TCLASS 8: Operation not permitted:`の表示を消す。

## 開発環境
Ubuntu 18.04 LTS, WSL 1, Git 2.17.1

## 問題
git pullをした際に以下の表示が出る。

“`
$ git pull
setsockopt IPV6_TCLASS 8: Operation not permitted:
“`

[こちら][link-1]の記事において同様な表示が出ていることが確認された。Gitのバージョンをアップデートすることにより解決されていたのでアップデートを行う。(アップデート手順は[こちら][link-2]を参照した。)

“`
$ git version
git version 2.17.1
$ sudo add-apt-repository ppa:git-core/ppa

The most current stable version of Git for Ubuntu.

For release candidates, go to https:

元記事を表示

GitHubのプライベートリポジトリをクローンする際にエラーが出たら

#エラー内容

“`
Cloning into ‘private-repository’…
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
“`
パスワード認証のサポートが2021年8月13日に終わったので、代わりにアクセストークンを仕様してくださいという内容でした。

##パスワードをアクセストークに変更して再度挑戦
“`
git clone https://{ユーザー名}:{トークン}@github.com/{ユーザー名}/{リポジトリ名}.git
“`

このようにパスワードからアクセストークンへ仕様が変わったので、アクセストークン

元記事を表示

「Git リポジトリにアクティブな変更が多いため、 Git 機能の一部のみが有効になります。」への対処法

タイトルの通り、`Git リポジトリにアクティブな変更が多いため、 Git 機能の一部のみが有効になります。`という
アラートが表示されてしまった時の解決策を記載いたします。

## 環境

“`
-> % sw_vers
ProductName: macOS
ProductVersion: 12.0.1
BuildVersion: 21A559
“`

## 対処法

ユーザーディレクトリ配下に`.git`のディレクトリが誤って生成されてしまっていたことが原因でした…

本来`.git`ディレクトリは各プロジェクトのディレクトリ配下に作成されているのですが、
誤ってユーザーディレクトリ配下に作成されてしまった結果、大量の差分ファイルが出てしまっていました。

Finder → ユーザーディレクトリ を確認し、`.git`のディレクトリを削除すれば解決します!
(隠しフォルダは `shift` + `command` +`.` で表示できます)

元記事を表示

複数のAWSアカウントにあるAWS CodeCommitリポジトリを切り替えて使用する

## Goal

AWS CodeCommitで複数のAWSアカウントにあるAWS CodeCommitリポジトリを適宜切り替えて使用する際の手順を示します。

### Authoring Guidelines

* 後日、修正する予定です。

## References

本文の手順は、次の文書を参考に作成しました。

* “[I need to access CodeCommit repositories in multiple Amazon Web Services accounts with SSH credentials](https://docs.aws.amazon.com/codecommit/latest/userguide/troubleshooting-ssh.html#troubleshooting-ssh-multi)”. Amazon Web Services, Inc. Retrieved 29 November 2021.

## Pre-Requisites
本文の手順は、次の環境で実施、検証しました。

* Windows 10, build 190

元記事を表示

Gitリポジトリを古いAWSアカウントから新しいAWSアカウントへ移行する

## Goal

AWS CodeCommitに既にあるGitリポジトリを古いAWSアカウントから新しいAWSアカウントへ移行する際の手順を示します。

### Authoring Guidelines

* AWS CodeCommitに限らず、GitHubからAWS CodeCommitへの移行、GitHubからGitHubへの移行でも、読み替えによって手順の大筋が把握できるようにAWS Management ConsoleとGitコマンドでの手順で主な流れを記載します。
* 自動化のため、将来的にAWS CodeCommitのAPIをコールするAWS CLIによる手順も追記する予定です。

## References

本文の手順は、次の文書を参考に作成しました。

* “[Migrate a Git repository to AWS CodeCommit](https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/how-to-migrate-repository-existing.html)”. Amazon

元記事を表示

VSCodeの便利機能について

# VSCodeの便利機能について

今回は、VSCodeの便利な機能と拡張機能を紹介します。
**この内容はMacOS向けです。**

![スクリーンショット 2021-11-26 19.32.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2303388/9c381b95-32b7-cb99-28ad-8cc6b1acbf26.png)

## 目次

Open

– VSCodeでターミナルを表示
– VSCodeでGitを使う
– 自分が使っている拡張機能
– まとめ

## VSCodeでターミナルを表示

まずは、VSCodeでターミナルを表示させる方法です。

### ターミナル表示のコマンド

ターミナルを表示させるコマンドは下記の通りです。

`Ctrl + Shift + ^`

GUIでも表示できます。

![スクリーンショット 2021-11-26 19.37.16.png](https://qiit

元記事を表示

git ブランチ

git branch (ブランチ作成)

git checkout (ブランチ切り替え)

gitを特定のコミットまで戻す方法

$ git log //戻す対象のハッシュ値を調べる
commit ************************
$ git reset –hard ハッシュ値

gitローカルの変更を元に戻す方法

git checkout
git checkout .

元記事を表示

Bad owner or permissions on /home/(user)/.ssh/config,エラーの対処法

##背景
githubにEC2からSSH接続しようとしたところ↑のように怒られた。

##原因
セキュリティが緩いので、厳しくする必要がある
(エラー発生時の権限状態↓)

“`
-rw-rw-r–
“`
##実行したこと

“`
chmod 600 ~/.ssh/config
“`

をすることで所有者のみに読み書きの与える権限を与えてセキュリティ強化した。

元記事を表示

OTHERカテゴリの最新記事