fc2ブログ

[git]メモ

■よく使うコマンド

git init ・・・ レポジトリ新規作成
git config --global user.email “hoge@gmail.com” ・・・ メールアドレス登録
git config --global user.name “hoge” ・・・ ユーザー名登録
git clone ssh://root@172.16.0.222:/var/www/git/test.git ・・・ リモートレポジトリからデータ取得
git add aaa ・・・ ローカルレポジトリへ反映する前にaaaファイルを一時保存
git commit -m "hogehoge" ・・・ コメントhogehogeを付加した上で、git addしたファイルをローカルレポジトリへ保存
git push origin master ・・・ ローカルレポジトリへ保存した内容をリモートレポジトリへ反映
git ls-files ・・・ gitへ登録済のファイル一覧
git status ・・・ ステータス表示(untrackedファイル表示など)
git log ・・・ 過去のコミット履歴表示
git rm aaa ・・・ 管理対象からaaaファイルを削除

■トラブルシューティング

git addで指定したファイルがgit addされない

何てことはなく、単にadd出来なかったフォルダに.gitフォルダが存在したため。
この中のどれかのファイルに、除外する旨の設定があった様だ。


■ため込んだソースを自動的にgit addするには?

こんな感じで対象の拡張子は何でもgit管理下に入れてしまえばどうか・・・

#!/bin/bash

ext_list=(
"v"
"vhd"
"vh"
"sv"
"do"
"c"
"h"
"s"
"S"
"ld"
"def"
"mif"
"bash"
"sh"
"qpf"
"qsf"
"qip"
"sdc"
"xdc"
"xpr"
"ucf"
"tcl"
"py"
"json"
"js"
"yml"
"yaml"
"php"
"bashrc"
"ks"
"html"
"xml"
"hex"
"mem"
"mif"
"vim"
"rb"
"txt"
)

for ext in "${ext_list[@]}"; do
echo "INFO : git add *.$ext ----------------------------"; find * -name "*.$ext" | xargs.exe git add
done
echo "INFO : git add bat.* ----------------------------"; find * -name "bat.*" | xargs.exe git add
echo "INFO : git add Makefile ---------------------------"; find * -name "Makefile" | xargs.exe git add
echo "INFO : git add *.v[0-9][0-9][0-9] -----------------"; find * -name "*.v[0-9][0-9][0-9]" | xargs.exe git add

スポンサーサイト



[GIT]git bashにgccインストール

https://sakkuntyo.github.io/2020/01/30/git-mingw-gcc/

git bash、7zipは既にインストールされてる前提。

https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/
以下をダウンロード
MinGW-W64 GCC-8.1.0
x86_64-win32-sjlj

x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z
をゲットできた。

なんとなく、Git bashのCLIで解凍したいので、7zipのパスを通す。
Git bashをひらいて、以下の通り実行。
# cd
# vi .bash_profile

export PATH=$PATH:/c/Program\ Files/7-Zip



Git bashを開きなおすと7zコマンドが効くようになってるので、さっきダウンロードした7zファイルを解凍する。
# 7z.exe x x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Scanning the drive for archives:
1 file, 52858187 bytes (51 MiB)

Extracting archive: x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z
--
Path = x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z
Type = 7z
Physical Size = 52858187
Headers Size = 111254
Method = LZMA2:26 LZMA:20 BCJ2
Solid = +
Blocks = 2

Everything is Ok

Folders: 340
Files: 13669
Size: 528362848
Compressed: 52858187



管理者権限でGit bashを開きなおして、さっき解凍した以下へ移動。
# cd mingw64/bin
# tar -cvf - . | tar -xvf - --keep-newer-files -C /c/Program\ Files/Git/mingw64/bin/

./
./addr2line.exe
./
./addr2line.exe
./ar.exe
./ar.exe
./as.exe
./as.exe
./c++.exe
./c++.exe
./c++filt.exe
./c++filt.exe
./cpp.exe
./cpp.exe
./dlltool.exe
./dlltool.exe
./dllwrap.exe
./dwp.exe
./dllwrap.exe
./dwp.exe
./elfedit.exe
./g++.exe
./elfedit.exe
./g++.exe
./gcc-ar.exe
./gcc-nm.exe
./gcc-ar.exe
./gcc-ranlib.exe
./gcc-nm.exe
./gcc.exe
./gcc-ranlib.exe
./gcc.exe
./gcov-dump.exe
./gcov-dump.exe
./gcov-tool.exe
./gcov-tool.exe
./gcov.exe
./gcov.exe
./gdb.exe
./gdborig.exe
./gdb.exe
./gdborig.exe
./gdbserver.exe
./gdbserver.exe
./gendef.exe
./genidl.exe
./gendef.exe
./genpeimg.exe
./genidl.exe
./gfortran.exe
./genpeimg.exe
./gfortran.exe
./gprof.exe
./gprof.exe
./ld.bfd.exe
./ld.bfd.exe
./ld.exe
./ld.exe
./ld.gold.exe
./ld.gold.exe
./libatomic-1.dll
./libgcc_s_sjlj-1.dll
./libatomic-1.dll
tar: Current ‘./libatomic-1.dll’ is newer or same age
./libgcc_s_sjlj-1.dll
./libgomp-1.dll
./libgomp-1.dll
tar: Current ‘./libgomp-1.dll’ is newer or same age
./libquadmath-0.dll
./libquadmath-0.dll
./libssp-0.dll
./libstdc++-6.dll
./libssp-0.dll
tar: Current ‘./libssp-0.dll’ is newer or same age
./libstdc++-6.dll
tar: Current ‘./libstdc++-6.dll’ is newer or same age
./libwinpthread-1.dll
./libwinpthread-1.dll
tar: Current ‘./libwinpthread-1.dll’ is newer or same age
./mingw32-make.exe
./mingw32-make.exe
./nm.exe
./nm.exe
./objcopy.exe
./objcopy.exe
./objdump.exe
./objdump.exe
./ranlib.exe
./ranlib.exe
./readelf.exe
./readelf.exe
./size.exe
./size.exe
./strings.exe
./strings.exe
./strip.exe
./strip.exe
./widl.exe
./widl.exe
./windmc.exe
./windmc.exe
./windres.exe
./windres.exe
./x86_64-w64-mingw32-c++.exe
./x86_64-w64-mingw32-c++.exe
./x86_64-w64-mingw32-g++.exe
./x86_64-w64-mingw32-g++.exe
./x86_64-w64-mingw32-gcc-8.1.0.exe
./x86_64-w64-mingw32-gcc-8.1.0.exe
./x86_64-w64-mingw32-gcc-ar.exe
./x86_64-w64-mingw32-gcc-nm.exe
./x86_64-w64-mingw32-gcc-ar.exe
./x86_64-w64-mingw32-gcc-ranlib.exe
./x86_64-w64-mingw32-gcc-nm.exe
./x86_64-w64-mingw32-gcc.exe
./x86_64-w64-mingw32-gcc-ranlib.exe
./x86_64-w64-mingw32-gcc.exe
./x86_64-w64-mingw32-gfortran.exe
./x86_64-w64-mingw32-gfortran.exe



再度Git bashを開きなおすと、確かにgccが見つかる。
# which gcc

/mingw64/bin/gcc



しかし、実行してみるとエラー。
# gcc hello_world.c

gcc.exe: error: CreateProcess: No such file or directory



結局、7z解凍でできたmingw64をCドライブ直下において、パスを通したら実行出来た。
# vi .bash_profile

export PATH=/c/mingw64/bin:$PATH



Git bashを開きなおす
# which gcc
/c/mingw64/bin/gcc
# $ gcc hello_world.c
a.exe
コンパイル出来た。

[GIT]git bashでchmodが効かない

https://algorithm.joho.info/programming/git/git-bash-windows10-chmod/
https://cheaparchitec.wordpress.com/2016/04/14/git-bashwindows%E3%81%A7chmod%E3%81%8C%E5%8A%B9%E3%81%8B%E3%81%AA%E3%81%84%E4%BB%B6/

Windows 10ではchmodによる権限変更が出来ないと。
理由は、chmodがNTFSやFATに対応してないから、という事らしい。

仕方ないので、以下のルールを使って対処してみる。

・git bashでは、対象ファイルの中身によって実行権限を自動判別。
・実行権限のあるファイルとして判別する条件は下記。

拡張子がexe/com/lnk
 1行目が「#!」で始まる



スクリプトファイルの1行目に#!を追記したら、確かに、実効権限が自動的に付与された。
なるほど、そういう仕組みなのか。

[GIT]運用

ローカル環境構築 ~ リモートへのpushまで

・githubへアカウントを作る。

・github上でレポジトリを作る。
 > 名前を決める。
 > publicにする(privateはコストかかるから)
 > initialize by READMEのチェックは外す

・ローカルPCでCygwinを起動。

・あるフォルダ以下で
git init
を実行。

・ローカルレポジトリにファイルをaddする。
git add a.txt

・ローカルレポジトリのファイルをcommitする。
git commit -m "hoge"

・登録したgithubレポジトリを、リモートレポジトリとしてoriginに登録する。
git remote add origin https://github.com/xxxx/yyyy.git
※ 最初にこれで登録したレポジトリから別のレポジトリにしようとしたら、
fatal: remote origin already exists.

・この場合は、
git remote rm origin
でoriginの登録を削除してから、再度
git remote add origin https://github.com/xxxx/yyyy.git
とすると成功する。

・そうしたらローカルのファイルをリモートにpushする。
git push origin master
そもそも、さっきのコマンドで登録せずに、以下で直接指定してもOK。でも面倒だよね。
git push https://github.com/xxxx/yyyy.git master




リモートブランチをローカルにクローン

・レポジトリも初期化してない環境で、リモートのレポジトリをコピーして作業始めるには以下コマンド。
git clone https://github.com/xxxx/yyyy.git
これでレポジトリがコピーされたので、作業していけばいい。



ブランチ方針

master
develop
hotfix

[GIT]スタートアップ

スタートアップ

ここを参考にさせて頂いた。
https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000#Git%E3%81%A8GitHub%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98

Cygwin64にgitをインストール > setup.exeからdevel/gitのみ追加。

# git config --global user.name "ユーザー名"
# git config --global user.email "メールアドレス"
# git config --list


# ssh-keygen -t rsa -b 4096 -C "hoge@gmail.com"
生成場所デフォルト
パスフレーズあり

/home/bob/.ssh/id_rsa
/home/bob/.ssh/id_rsa.pub
が生成された。


なかったので新規作成する。
# vi /home/bob/.ssh/config

Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa




次にgithubアカウントを登録。
https://github.com/
最後に登録emailへVerify依頼が来るので対応。

githubへログイン > 練習用のtestレポジトリを作成。
 > 右上のプロフィールメニュー > Settings
 > 左側のSSH and GPG keys
 > New SSH Key
 > 枠へ、先程生成した公開鍵(id_rsa.pub)をコピペして登録。

Windows上Cygwin64 > ssh github

The authenticity of host 'github.com (192.30.xxx.xxx)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.xxx.xxx' (RSA) to the list of known hosts.
Enter passphrase for key '/home/bob/.ssh/id_rsa':
PTY allocation request failed on channel 0
Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.



カレンダー
02 | 2024/03 | 04
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード