20220131のGitに関する記事は5件です。

【Git】初学者向け なんとなく使っているpushの挙動を確認してみた。

はじめに Gitでの共同開発の中でpushでミスった経験からしっかりpushの挙動を確認してみました。 対象者 pushは使っているけど、実際にどんなことをしているのかあまりわかっていない方。 実際に試した内容 testディレクトリに空のindex.htmlファイルがあるとする。 ローカルブランチは下記だとする。 master hoge fuga hogeブランチにはindex.htmlに「hogehoge」と入力してコミット fugaブランチにはindex.htmlに「fugafuga」と入力してコミット 実験1 今いるブランチ以外のブランチをpushできるか? master *hoge fuga hogeブランチで $ git push origin fuga を実行。 検証結果 pushされたのは「fugafuga」と書かれたindex.html つまり、hogeブランチでpushしたがfugaブランチの内容がpushされた。 実験2 ローカルブランチ名以外でpushできるか? 次にfugaブランチに移動。 master hoge *fuga $ git push origin hogehoge を実行。 検証結果 $ git push origin hogehoge error: src refspec hogehoge does not match any error: failed to push some refs to リモートリポジトリ名 となった。 つまり存在しないブランチをpushしようとしたのでエラーが表示された。 結論 以上の結果からpushの挙動は以下のこととなる。 ・カレントブランチがどこにいても他のブランチの内容をpushできる。 ・しかしローカルブランチ名が一致しないとエラーが返ってくる。 ・どこのブランチでpushを実行するかは関係なく、ローカルブランチ名が存在すれば、そのローカルブランチがpushされる。 補足 @yonceさんが書かれているこちらの記事が非常にわかりやすいので、ぜひ参考にしてみてください。 https://qiita.com/yonce/items/b09f35ab301befde7803 $ git push origin master 普段pushする時に使っていたこの書き方は $ git push origin <PUSHしたいローカルブランチ名>:<PUSH先リモートブランチ名>の省略形だったんですね。 pushしたいローカルブランチ名とリモートブランチ名を一緒にする場合は省略できるんです。 反対に別名でpushしたい場合は、:の後を任意の名前にすればOKです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Google ColabからGithubを使ってみた

Google ColabでGitHubを使う方法 Gitコマンドについてはこちらにまとめています。 Google ドライブをマウント Googleドライブをマウントする。 git管理したいディレクトリを作成し移動する。 ディレクトリに移動 %cd 'gitを導入するディレクトリまでのパス' Git Cloneする Git_Clone !git clone https://github.com/リポジトリ名.git # Cloneしたディレクトリへ移動 %cd 'ディレクトリ名' ユーザ名とメールアドレスを設定 設定 !git config --global user.email "メールアドレス" !git config --global user.name "ユーザー名" ブランチ操作 ブランチを切って移動 !git checkout -b develop >> Switched to a new branch 'develop' ログの確認 log !git log コミットしてpush add~commit~push !git add -A !git commit -m "コミット名" # ユーザー名とアクセストークンが必要 !git remote set-url origin https://ユーザー名:アクセストークン@github.com/リポジトリ名.git !git push origin develop Reset ブランチを切る前にmasterにpushしてしまったので。 本当はRevertのほうがいいけど、masterがごちゃごちゃすると嫌だなぁと思ってしまったためReset(自分しか使わないし)。 チームで開発するときはRevertしましょう。 Reset !git reset 戻したいcommitID --hard !git push origin master -f これでGit管理しながらGoogle ColabでAI開発ができるようになりました! weightが重すぎてpushできない問題 モデルのパラメータを保存したweightフォルダ内のファイルが400MBあり、Gitにpushできなかった。 すでにcommitしているので、とりあえず戻す。 reset--soft !git reset 戻したいcommitID --soft commitを戻しただけでaddはされているので、weightフォルダのファイルをaddから除く。 rm !git rm --cached -r 取り除くファイルのパス 次回以降、git管理しないように.gitフォルダと同じ階層に.gitignoreファイルを作成。 今回はとりあえずweightフォルダ全てをgit管理からはずすようにする。 gitignore /weight あとは通常通りcommitしてpushする。 commit~push !git commit -m "コミット名" !git push origin develop 参考資料 Google Colab上でGitHubからCloneして変更をPushするまでのまとめ
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【ssh, git, windows10】ssh githubしたらエラーが出た。Bad owner or permissions on /Users/hoge/.ssh/config の解決方法

ssh githubしたらエラーが出た gitbash ssh github 結論 エクスプローラーで.sshフォルダを右クリック⇒プロパティ⇒セキュリティタブから あーだこーだして解決 面倒くさい人はconfigを消してもエラーは無くなる。(本末転倒) Mac, Linuxの人はchmod 600すれば良いと思う 前提 ・Windows10だからchmodできない ・ssh鍵作った ・.sshフォルダにconfig作った この記事の中に出てくる「C:\Users\hoge\.ssh\github」の hoge ⇒ 自分のWindowsユーザー名 github ⇒ ssh鍵のファイル名 この記事の中に出てくるssh githubの github ⇒ configのHost に置き換えてください .ssh/config Host github HostName github.com IdentityFile C:\Users\hoge\.ssh\github User git ssh githubするとエラー ssh github Bad owner or permissions on C:\\Users\\hoge/.ssh/config 解決方法 1.エクスプローラーで.sshフォルダの前まで行き、.sshフォルダを右クリック ⇒ プロパティ .sshフォルダがどこにあるか分からない人は、とりあえずCドライブ ⇒ ユーザー ⇒ hogeをチェック 2.上 セキュリティタブ ⇒ 下 詳細設定をクリック 4.左下 継承の無効化をクリック 5.継承の無効化を押すとワーニングが出るため、下の選択肢を選ぶ(継承された権限の削除とか書いてあると思う) 6.アクセス許可エントリ: が空になる(なんか色々出てたユーザー一覧が空に) 7.継承の無効化の上にある、追加をクリック 8.上 青文字、プリンシパルの選択をクリック 9.左下 詳細設定をクリック 10.中央右 検索をクリックすると、下の検索結果にユーザー一覧が出る 11.ユーザー一覧の中から自分のユーザー名を選ぶ。その後、OKですべてのウィンドウを閉じる ssh githubしてみる gitbash ssh github Hi hoge! You've successfully authenticated, but GitHub does not provide shell access. 私の環境ではうまくいきました。 補足 このままだと.sshフォルダにファイルの作成・ファイルの変更等が行えない。 6.のアクセス許可エントリにある、11.で追加したユーザーをダブルクリックすると、 8.のプリンシパルの選択~とかが出てくる。 右 青文字、高度のアクセス許可を表示する をクリック ここでアクセス許可を設定できる。 デフォルトは読み取り・実行のみなので、 ・ファイルの作成/データの書き込み ・フォルダーの作成/データの追加 ・削除 など、最低限CRUDは追加したほうが良いと思います。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitのbranch

ブランチ操作 // リモートブランチの一覧表示 $ git branch -a // ブランチの作成 $ git branch <branch_name> // ブランチ名の変更 $ git branch -m <old_branch> <new_branch> // ブランチの削除(マージ済) $ git branch -d <branch_name> // ブランチの削除(マージの有無を問わず) $ git branch -D <branch_name> // ブランチを切り替える $ git checkout <branch_name> // ブランチを作成して切り替える $ git branch -b <new_branch> <old_branch> その他 ・現在の作業を一時的に退避する。link ・gitのmergeとrebaseの違い link ・チートシート link ・git flow link1 link2
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitのcommandをまとめてみた。

ブランチ操作 // リモートブランチの一覧表示 $ git branch -a // ブランチの作成 $ git branch <branch_name> // ブランチ名の変更 $ git branch -m <old_branch> <new_branch> // ブランチの削除(マージ済) $ git branch -d <branch_name> // ブランチの削除(マージの有無を問わず) $ git branch -D <branch_name> // ブランチを切り替える $ git checkout <branch_name> // ブランチを作成して切り替える $ git branch -b <new_branch> <old_branch> ファイル管理、リポジトリ操作 // リポジトリの複製 $ git clone [クローンしたいリポジトリ] // working directoryからindexへ保存(working directory => index) $ git add . // バージョン管理しているファイルを削除し、対象外とする。 $ git rm <ファイル名> // ファイルのリネーム、移動。(バージョン管理は、commitも必要) $ git mv <ファイル名> // コミットの内容を打ち消すコミットを作成する。 $ git revert <commit> // ひとつ前のコミットを丸ごと消す。 $ git reset --hard HEAD^ // ステージしたものを消す。 $ git reset --mixed HEAD // 直前のコミットを修正する $ git reset --soft HEAD^ // local repositoryへ反映し、コメントをつける(index => local repository) $ git commit -m ‘コメント’ // remote repositoryへ反映する。(index => local repository) $ git push origin master status,logの確認 // 現在の状態確認 $ git status // commitの確認 $ git log // 最新10件分のコミットを1行づつの形式で表示 $ git log -10 --oneline // コミットの差分・ファイルの内容を表示 $ git show <commit> その他 ・現在の作業を一時的に退避する。link ・gitのmergeとrebaseの違い link ・チートシート link ・git flow link1 link2 ・git reset について link ・git diff について link
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む