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

|

その他のカテゴリー

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