git checkoutを禁止してgit switch & git restoreを強制する養成ギブス git-switch-trainerGit git-switch-trainerはgit checkoutの使用を禁止して、git switchとgit restoreに慣れるためのコマンドです。 switchとrestoreはcheckoutから分離した機能であり、コマンド名が作業を適切に表現するようになりました。 機能的には大きく変わらないため今まで通りcheckoutを利用しても問題ありません。 既存のユーザよりもこれから学ぶユーザへの学習ハードルを下げるための機能追加と考えると良いと思います。 既存ユーザの方でも新しいコマンドを使いたいという方はcheckoutの癖が抜けきれないと思うので、このツールを使うと矯正することができます。 準備 siwtchやrestoreはGit 2
git-sync にインスパイヤされて作りました qiita.com ソースコード gist.github.com モチベーション 例えばトピックブランチで作業してて、リポジトリのmasterが更新されたから最新のmasterを取り込んでrebaseするってことよくやると思うのですが、その時にいちいち git checkout master git pull --ff git checkout topic_branch git rebase master みたいなことをやるのが大変なのでサブコマンドにしました。 *1 3ヶ月くらい使ってるけど割と開発が捗ってます。 ~/.gitconfig のaliasにも up = update で登録してるので、1時間に1回くらいは g up 叩いてるんじゃないかなw https://github.com/sue445/dotfiles/blob/65
Gitはターミナルで使っている人が多いかと思いますが、細かい操作になるとつい忘れがちです。不要なファイルが混ざったのに気付かずに思わずコミットしてしまったり、コミット後のキャンセルなどいちいちネットで調べたりしているのではないでしょうか。 そこで使ってみたいのがlazygitです。ターミナル上のGitクライアントです。 lazygitの使い方 Gitリポジトリで実行するとlazygitが立ち上がります。 コミットメッセージの入力もできます。 コミットロゴを追いかけたり、ファイルを対象外にしたりするのも簡単です。 lazygitがGitのすべての機能を使えるとは思いませんが、普段の運用時に使っているくらいの入力であれば問題なくこなせるでしょう。GUIの重たいソフトウェアは使いたくないが、Gitを見やすく管理したいと言った場合に便利そうです。 lazygitはGo製のオープンソース・ソフトウェ
素人プログラマの自分用メモです。 あわよくば他の初心者の役に立てば。あわよくば心優しい達人からのフィードバックを頂戴できれば。という下心を抱きつつ。 順番には意味はなく、書きたいものを書きたい順に。(今後も学んだことを書き足していきたい。) git reset について add しちゃったけど、取り消したいときに使えます。 と、すればaddを取り消してくれます。正確には、インデックスの状態をHEADと同じにしてくれる。--softや--hardというオプションもある。詳しくはこちら 「murankの日記」 http://d.hatena.ne.jp/murank/20110327/1301224770 とても分かりやすいです。有り難うございます。 ちなみに、僕のいじってみたところでは、First commitをする前だと、git add HEADが動かず。(これ分からないのですが、Firs
8/11にGitの脆弱性 ( CVE-2017-1000117 )が出ていました。 CVE-2017-1000117 - Red Hat Customer Portal これは、gitクライアント上での任意のshellコマンド実行の可能性があります。 重要度 - Important Gitでの"ssh"URLハンドリングにshellコマンドインジェクションの欠陥が見つかりました。これを利用して、悪意のあるレポジトリや悪意のあるコミットを行われたをレポジトリに対して"clone"アクションをGitクライアントで実行した際に、Gitクライアントを実行したユーザの権限でshellコマンドを実行される可能性が有ります。 Gitの脆弱性 ( CVE-2017-1000117 ) — | サイオスOSS | サイオステクノロジー 実際にどんなことが起きるか 百聞は一見にしかず。 このリポジトリを cl
Microsoftは本日、巨大なGitリポジトリを快適に管理するための専用ファイルシステム「GVFS(Git Virtual File System)」を発表しました(slashdot)。 GVFSはGitリポジトリを格納するための専用ファイルシステムで、リポジトリを仮想化し、巨大なリポジトリでも高速な動作を可能とすることを目指して開発されているものです(具体例としてあげられているWindowsのコードベースは350万件を超えるファイルが存在し、サイズは270GBを超えている模様)。 必要なファイルだけをダウンロードすることでcloneを高速化し、リポジトリの状態を積極的に管理することで、checkoutやstatusなどに必要な時間も短縮します。例えばcloneにかかる時間が12時間から数分に、checkoutは2〜3時間から30秒に、statsuは10分から4〜5秒に短縮されるとしてい
code review の reviewer 選出をする時,pull request の内容をざっと眺めてから「この部分だから XX さんかな」とか「あそこのコードは YY さんが詳しいだろう」とか,そういう感じで選ぶことが多くて,つまりは勘と経験で選びがちになってしまう.これについては常々いくばくかの危うさを感じていた. そもそも,「reviewer として誰が最適か」という知識はプロジェクトに長く関わっている人でなければ知りにくいものであり,いわば属人的な知識のひとつだと思っている.プロジェクトからそういった長老的な人がいなくなってしまったら,最適な code review を実施できなくなってしまう可能性がある. 従って,やはり技術で解決ということになる. Facebook が作っている mention-bot という GitHub の bot として動作するやつがあって,これは p
#!/bin/sh set -e # core.editorに設定したいもの # merge,rebaseなどの時に起動する CORE_EDITOR=vi # commitじゃなかった場合(mergeとかrebaseとか)の場合はCORE_EDITORに渡す if [[ ! "$1" = *COMMIT_EDITMSG ]]; then $CORE_EDITOR $1 exit 0 fi CURRENT_DIR=$(cd $(dirname $0); pwd) MSGLIST_FILE=$CURRENT_DIR/.gscme_msglist SAMPLE_MSGLIST_FILE=$CURRENT_DIR/sample_msglist/.gscme_msglist_present_tense_subject # .gscme_msglistファイルが無い場合は作る # デフォルトの質問リス
はじめに 表題のとおり、いまさら聞けないgitの使い方だが、正直マイナーなコマンドはヘビーユーザではない限り、必要になるたびにGoogleで検索しているのが実情ではないだろうか。このページではその備忘録として、基本的な使い方+アルファのgitコマンドについてまとめる。 基本操作 リモートリポジトリからクローンする 大抵のgitプロジェクトでは、githubなどから自分の環境にクローンを作成するところからはじまる。基本文法は以下の通り このuriの中に入るのは、http,httpsから始まるurlやsshプロトコルで指定するもの、gitoliteなどの他のソフトウェアと連携するものなどいくつかのパターンがある。 http, httpsを使う場合 だいたい、githubからcloneする場合はこのパターン。
この本の概要 GitHubの実践的な使い方を,実際に手を動かす形で解説する書籍です。初学者の方にもわかりやすいよう,基本的なGitやGitHubの使い方から,「ソーシャルコーディング」の目玉機能であるPull Requestの送り方・受け方まで解説します。また,外部ツールとの連携,GitHub FlowやGit Flowなど,GitHubを中心とした開発手法についてもしっかり解説しているので,中・上級者の方にも参考になるはずです。 こんな方におすすめ GitHubをこれから使いたい初学者の方 GitHubをさらに使いこなしたい中級者の方 本書に関するお知らせ 本書に関連する記事を公開しております。 はじめに この書籍に関連する記事があります! はじめに 本書は,世界中の開発者が行っているGitHubを利用した開発方法を,みなさんが現場で使えるようになるためのガイドとして執筆しました。 なぜ
Gitは速く柔軟性がありますが、理解に時間のかかる分散型バージョン管理システムです。Gitを始める前に次を理解しておきましょう。 通常のバージョン管理 分散型バージョン管理 本 や 学習書 、 指南書 はGitを理解するのに役に立ちました。しかし、その他にもGitの理解に至ったきっかけがありますのでご紹介します。 ステージング・エリアがある Gitにはステージング・エリアがあります。繰り返しますが、 ステージング・エリアがあるのです 。 これには混乱しました。リポジトリ(「オブジェクトデータベース」)とステージング・エリア(「インデックス」と呼ばれる)の両方がGitにはあります。チェックインには2段階あります。 git add foo.txt インデックスにfoo.txtを追加します。これだけでは、チェックインは完了していません。 git commit -m "message" リポジトリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く