github

3:[LOCAL]保存先(CLON先)を決める

フォルダ生成

#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXXXXXX"

#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"
##コンテナディレクトリ
STR_CONTAINER_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CONTAINER_DIR"
##ローカルフォルダを作っておく
/bin/mkdir -p "$STR_CLONE_DIR"
#ルートのアクセス権を700にしておく
/bin/chmod 700 "$HOME/Developer"
#作業CLONE先のコンテナのアクセス権はお好みで
/bin/chmod 750 "$HOME/Developer/GitHub"

exit 0


|

4:[LOCAL]SSHのキーを確認

コマンドを実行

/bin/cat "$HOME/.ssh/id_ed25519.pub"

ターミナルで↑のコマンドを実行 コマンドの戻り値の想定は3種類
A:エラーになる:ファイルが見つからない
B:GITHUBのアカウントメールアドレス以外の戻り値
C:GITHUBのアカウントメールアドレスでの戻り値(これが期待値)

|

5:[LOCAL]公開キーを生成取得

IDとメールアドレスを設定

#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXXX"

#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"
##コンテナディレクトリ
STR_CONTAINER_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CONTAINER_DIR"
##ローカルフォルダを作っておく
/bin/mkdir -p "$STR_CLONE_DIR"
#ルートのアクセス権を700にしておく
/bin/chmod 700 "$HOME/Developer"
#作業CLONE先のコンテナのアクセス権はお好みで
/bin/chmod 750 "$HOME/Developer/GitHub"
#################################################
##
/usr/bin/cd "$STR_CLONE_DIR"
pushd "$STR_CLONE_DIR" && /usr/bin/git remote -v
#################################################
##
/bin/echo "現在の設定を表示します"
pushd "$STR_CLONE_DIR" && /usr/bin/git config -l
#################################################
##
/bin/echo "IDとアドレスを登録"
/usr/bin/git config --global user.name "$STR_USR_NAME"
/usr/bin/git config --global user.email "$STR_USR_EMAIL"
##
/bin/echo "設定後の内容を表示します"
pushd "$STR_CLONE_DIR" && /usr/bin/git config -l

#################################################
STR_BRANCH=$(/usr/bin/git config init.defaultbranch)
/bin/echo "ブランチ名:""$STR_BRANCH"
/bin/echo "サンプルスクリプト"
/bin/echo "/usr/bin/git push -u origin ""$STR_BRANCH"

#全体設定する場合
# /usr/bin/git config --global core.excludesfile "$HOME/.gitignore_global"
# /bin/echo "# .gitattributes\n.DS_Store binary -merge -diff -text\n" > "$HOME/.gitignore_global"

exit 0


キーの生成と設定

#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXX"
##

#################################################
/bin/echo "SSHキーの確認"
/bin/ls -al $HOME/.ssh
#################################################
/bin/echo "既存の SSH キーの確認"
if [ -f "$HOME/.ssh/id_ed25519.pub" ]; then
/bin/echo "id_ed25519.pubがあります"
STR_PUB_KYE=$(/bin/cat "$HOME/.ssh/id_ed25519.pub")
  if [[ $STR_PUB_KYE == *"$STR_USR_EMAIL"* ]]; then
/bin/echo "すでに対象のメールアドレスでIDがあります"
/bin/echo "id_ed25519.pubは公開キーです内容を表示します"
/bin/cat "$HOME/.ssh/id_ed25519.pub"
/bin/echo "↑この1行を"
/bin/echo "https://github.com/settings/keys"
/bin/echo "↑このページのSSH keysにNewSSHKEYから付与してください"
  else
/bin/echo "対象のメールアドレスが含まれていません"
STR_DATE=$(/bin/date +'yyyyMMdd')
/usr/bin/ditto "$HOME/.ssh/id_ed25519.pub" "$HOME/.ssh/id_ed25519.$STR_DATE.pub"
/usr/bin/ditto "$HOME/.ssh/id_ed25519" "$HOME/.ssh/id_ed25519.$STR_DATE"
USER_HOSTNAME=$(/bin/echo "$STR_PUB_KYE" | awk '{print $NF}')
/usr/bin/ditto "$HOME/.ssh/id_ed25519.pub" "$HOME/.ssh/id_ed25519.$USER_HOSTNAME.pub"
/usr/bin/ditto "$HOME/.ssh/id_ed25519" "$HOME/.ssh/id_ed25519.$USER_HOSTNAME"
/bin/echo "id_ed25519ファイルをバックアップしました"
/bin/echo "ターミナルからコマンドを実行して生成してください"
/bin/echo "pushd "$HOME/.ssh" && /usr/bin/ssh-keygen -t ed25519 -C "$STR_USR_EMAIL""
  fi
else
/bin/echo "id_ed25519.pubがありませんでした"
/bin/echo "ターミナルからコマンドを実行して生成してください"
/bin/echo "pushd "$HOME/.ssh" && /usr/bin/ssh-keygen -t ed25519 -C "$STR_USR_EMAIL""
fi

#################################################
/bin/echo "SSHの設定"
/usr/bin/touch "$HOME/.ssh/config"
/usr/bin/ditto "$HOME/.ssh/config" "$HOME/.ssh/config.backup"
/bin/echo "Host github.com" >"$HOME/.ssh/config"
/bin/echo " AddKeysToAgent yes" >>"$HOME/.ssh/config"
/bin/echo " UseKeychain yes" >>"$HOME/.ssh/config"
/bin/echo " IdentityFile ~/.ssh/id_ed25519" >>"$HOME/.ssh/config"
/bin/echo " " >>"$HOME/.ssh/config"

#################################################
/bin/echo "SSHパーミッション・アクセス権チェック"
/bin/chmod 700 "$HOME/.ssh"
/bin/chmod 600 "$HOME/.ssh/config"
/bin/chmod 600 "$HOME/.ssh/id_ed25519"
/bin/chmod 600 "$HOME/.ssh/id_ed25519.pub"
/bin/chmod 600 "$HOME/.ssh/id_rsa"
/bin/chmod 600 "$HOME/.ssh/id_rsa.pub"


#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"

/bin/cd "$STR_CLONE_DIR"

/bin/echo "認証用のヘルパを表示"
pushd "$STR_CLONE_DIR" && /usr/bin/git config credential.helper
pushd "$STR_CLONE_DIR" && /usr/bin/git config --local credential.helper
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global credential.helper
pushd "$STR_CLONE_DIR" && /usr/bin/git config --system credential.helper
/bin/echo "キーの登録"
/usr/bin/ssh-add --apple-use-keychain "$HOME/.ssh/id_ed25519"
/bin/echo "キー設定"
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global credential.helper osxkeychain
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global user.name "$STR_USR_NAME"
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global user.email "$STR_USR_EMAIL"
pushd "$STR_CLONE_DIR" && /usr/bin/git config --global url."ssh://git@github.com".insteadOf "https://github.com"


###


|

6:[GITHUB]SSHキーを登録する

1:LOCALでSSHの公開キーを取得します 2:GITHUBでSSHキーを登録します
1:LOCALでSSHの公開キーを取得します

/bin/cat "$HOME/.ssh/id_ed25519.pub"

ターミナルで↑のコマンドを実行
戻り値は
ssh-ed25519 5A3ADE4BCF2744D79FB6F34E0E5FCD8CF2744D/F2744D79F2744D/F2744D79F2744D foo@hoge.com
こんな感じですので
GITHUBのアカウントメールアドレスを同じ内容なのを確認して
この1行全部コピーします

2:GITHUBでSSHキーを登録します 20240418032629_1646x370 20240418032650_1688x996 20240418032700_1648x570

|

7:[LOCAL]CLONE



#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##同期するURL
STR_URL="https://github.com/qzu04435/ScriptMenu"
##ローカルパス
STR_CLONE_DIR="$HOME/Developer/GitHub/qzu04435/ScriptMenu"

#################################################
##ラストパス名
STR_TRASH_DIR_NAME=$(/usr/bin/basename "$STR_CLONE_DIR")
##エラーよけ
/usr/bin/touch "$STR_CLONE_DIR"
#
if [ -d "$STR_CLONE_DIR" ]; then
  ##バックアップ
STR_DATE=$(/bin/date +%Y%m%d)
/bin/mv "$STR_CLONE_DIR" "$STR_CLONE_DIR.$STR_DATE"
else
  ##ゴミ箱用テンポラリ
USER_TRASH_DIR=$(/usr/bin/mktemp -d "$HOME/.Trash/""$STR_TRASH_DIR_NAME"".XXXXXXXX")
  ##ゴミ箱に入れ
/bin/mv "$STR_CLONE_DIR" "$USER_TRASH_DIR"
fi
##フォルダ
/bin/mkdir -p "$STR_CLONE_DIR"
##クローン実行
/usr/bin/git clone "$STR_URL" "$STR_CLONE_DIR"

exit 0


|

8:[LOCAL]add


#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXXXXX"
#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"
##LOG
STR_LOG_DIR="$STR_CLONE_DIR/Logs"
/bin/mkdir -p "$STR_LOG_DIR"
#################################################
##更新ADD用のダミーのファイルを作ります
##このファイルは後で削除してください
STR_DATE=$(/bin/date +%Y%m%d)
STR_ADD_FILE_NAME="$STR_DATE""_更新チェック用.txt"
/usr/bin/touch "$STR_LOG_DIR/$STR_ADD_FILE_NAME"

#DS_STORE 反映させない設定
STR_IGNORE_PARH="$STR_CLONE_DIR/.gitignore"
/bin/echo "# .gitignore" >"$STR_IGNORE_PARH"
/bin/echo ".DS_Store" >>"$STR_IGNORE_PARH"
/bin/echo ".gitignore" >>"$STR_IGNORE_PARH"
/bin/echo " " >>"$STR_IGNORE_PARH"

#################################################
/usr/bin/cd "$STR_CLONE_DIR"

#################################################
##追加
pushd "$STR_CLONE_DIR" && /usr/bin/git add "$HOME/Developer/GitHub/qzu04435/ScriptMenu/."

exit 0


|

9:[LOCAL]commit


#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXXX"
#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"

#################################################
/usr/bin/cd "$STR_CLONE_DIR"
##追加するファイル名
STR_ADD_MESSAGE="通常更新"
##追加
pushd "$STR_CLONE_DIR" && /usr/bin/git commit -m "$STR_ADD_MESSAGE"

exit 0


|

10:[LOCAL]PUSH


#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
#################################################
##USER_NAME ユーザー名を設定【1】
STR_USR_NAME="XXXXXXX"
##USER_EMAIL ユーザーEmailを設定【2】
STR_USR_EMAIL="foo@hoge.com"
##リポジトリ名 を設定【3】
STR_REPOSITORY="XXXXXXXX"

#################################################
##同期するURL
STR_URL="https://github.com/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_URL"
##ローカルフォルダ
STR_CLONE_DIR="$HOME/Developer/GitHub/$STR_USR_NAME/$STR_REPOSITORY"
/bin/echo "$STR_CLONE_DIR"

#################################################
/usr/bin/cd "$STR_CLONE_DIR"

pushd "$STR_CLONE_DIR" && /usr/bin/git push -f origin main

STR_GIT_STATUS=$(pushd "$HOME/Developer/GitHub/qzu04435/ScriptMenu" && /usr/bin/git status)
if [[ $STR_GIT_STATUS == *"working tree clean"* ]]; then
/bin/echo "正常終了しました"
else
/bin/echo "リポジトリに先に変更が入っています"
/bin/echo "pullする前に確認してください"
/bin/echo "/usr/bin/git pull --rebase origin main"
fi


exit 0

|

その他のカテゴリー

Acrobat Acrobat Annotation Acrobat BookMark Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Open Acrobat Plugin Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat Sequ Acrobat Sign Acrobat Stamps Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe RemoteUpdateManager Apple AppleScript AppleScript Accessibility AppleScript AppKit AppleScript Applications AppleScript AppStore AppleScript Archive AppleScript Attributes AppleScript Audio AppleScript Automator AppleScript AVAsset AppleScript AVconvert AppleScript AVFoundation AppleScript AVURLAsset AppleScript BackUp AppleScript Barcode AppleScript Bash AppleScript Basic AppleScript Basic Path AppleScript Bluetooth AppleScript BOX AppleScript Browser AppleScript Calendar AppleScript CD/DVD AppleScript Choose AppleScript Chrome AppleScript CIImage AppleScript CloudStorage AppleScript Color AppleScript com.apple.LaunchServices.OpenWith AppleScript Console AppleScript Contacts AppleScript CotEditor AppleScript CURL AppleScript current application AppleScript Date&Time AppleScript delimiters AppleScript Desktop AppleScript Device AppleScript Disk AppleScript do shell script AppleScript Dock AppleScript DropBox AppleScript eMail AppleScript Encode Decode AppleScript Error AppleScript EXIFData AppleScript ffmpeg AppleScript File AppleScript Finder AppleScript Firefox AppleScript Folder AppleScript Fonts AppleScript GIF AppleScript Guide AppleScript HTML AppleScript Icon AppleScript Illustrator AppleScript Image Events AppleScript Image2PDF AppleScript ImageOptim Applescript iWork AppleScript Javascript AppleScript Jedit AppleScript Json AppleScript Label AppleScript List AppleScript locationd AppleScript LRC AppleScript LSSharedFileList AppleScript m3u8 AppleScript Mail AppleScript MakePDF AppleScript Map AppleScript Math AppleScript Microsoft AppleScript Microsoft Edge AppleScript Microsoft Excel AppleScript Mobileconfig AppleScript Mouse AppleScript Movie AppleScript Music AppleScript NetWork AppleScript Notes AppleScript NSArray AppleScript NSBitmapImageRep AppleScript NSBundle AppleScript NSCFBoolean AppleScript NSCharacterSet AppleScript NSColor AppleScript NSColorList AppleScript NSData AppleScript NSDictionary AppleScript NSError AppleScript NSEvent AppleScript NSFileAttributes AppleScript NSFileManager AppleScript NSFileManager enumeratorAtURL AppleScript NSFont AppleScript NSFontManager AppleScript NSImage AppleScript NSIndex AppleScript NSKeyedArchiver AppleScript NSKeyedUnarchiver AppleScript NSLocale AppleScript NSMutableArray AppleScript NSMutableDictionary AppleScript NSMutableString AppleScript NSNotFound AppleScript NSNumber AppleScript NSOpenPanel AppleScript NSPasteboard AppleScript NSPDFImageRep AppleScript NSpoint AppleScript NSPredicate AppleScript NSRange AppleScript NSRegularExpression AppleScript NSRunningApplication AppleScript NSScreen AppleScript NSSize AppleScript NSString AppleScript NSStringCompareOptions AppleScript NSTask AppleScript NSTimeZone AppleScript NSURL AppleScript NSURL File AppleScript NSURLBookmark AppleScript NSURLComponents AppleScript NSURLResourceKey AppleScript NSUserDefaults AppleScript NSUUID AppleScript NSView AppleScript NSWorkspace AppleScript Numbers AppleScript OAuth AppleScript ObjC AppleScript OneDrive AppleScript Osax AppleScript PDF AppleScript PDFAnnotationWidget AppleScript PDFContext AppleScript PDFDisplayBox AppleScript PDFDocumentPermissions AppleScript PDFKit AppleScript PDFnUP AppleScript PDFOutline AppleScript Photos AppleScript Photoshop AppleScript PostScript AppleScript prefPane AppleScript Preview AppleScript Python AppleScript QR AppleScript QR Decode AppleScript QuickLook AppleScript QuickTime AppleScript record AppleScript Regular Expression AppleScript Reminders AppleScript ReName AppleScript Repeat AppleScript RTF AppleScript Safari AppleScript SaveFile AppleScript ScreenCapture AppleScript ScreenSaver AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript Sort AppleScript Sound AppleScript Spotlight AppleScript SRT AppleScript StandardAdditions AppleScript stringByApplyingTransform AppleScript System Events AppleScript System Events Plist AppleScript System Settings AppleScript TemporaryItems AppleScript Terminal AppleScript Text AppleScript Text CSV AppleScript Text TSV AppleScript TextEdit AppleScript Translate AppleScript Trash AppleScript Twitter AppleScript UI AppleScript Unit Conversion AppleScript UTType AppleScript valueForKeyPath AppleScript Video AppleScript VisionKit AppleScript Visual Studio Code AppleScript webarchive AppleScript webp AppleScript Wifi AppleScript XML AppleScript XML EPUB AppleScript XML OPML AppleScript XML Plist AppleScript XML RSS AppleScript XML savedSearch AppleScript XML SVG AppleScript XML TTML AppleScript XML webloc AppleScript XMP AppleScript YouTube AppleScript Zero Suppress Applications CityCode Design github iPhone List Logs lsappinfo Memo Music perl PlistBuddy pluginkit postalcode ReadMe SF Symbols character id SF Symbols Entity sips Skype Slack sqlite TCC Tools Typography Video Wacom zoom