タグ

gitに関するlarsson9のブックマーク (15)

  • gitで、特定のコミットからファイルを取り出す方法 - Qiita

    問題 昨日作業したファイル(例えばHEAD^^^にある)が欲しい時、どうしましよう github, bitbucketなどから copy & paste; バージョン管理できてない気がします、ファイル数が多い時手間がかかります。 HEAD^^^へチェックアウトする; 直近のコミットの内容がなくなります。 checkout + cherry-pick; ちょっと手間、、 rebase; コミット履歴を消すまでやるのは、、、 結論 git checkout COMMIT_SHA -- FILE_NAMEを使います。 COMMIT_SHA: コミットのSHA番号; HEAD~;ブランチ名(develop)などの記述も可 FILE_NAME: 取り出したいファイルの名前(現ワーキングスペースになくても、つまりどこかのコミットで削除されたファイルでもおっけー) -- なくてもいけますが、FILE_N

    gitで、特定のコミットからファイルを取り出す方法 - Qiita
    larsson9
    larsson9 2022/05/26
    “git checkout COMMIT_SHA -- FILE_NAME超便利”
  • grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記

    特定の文字列がある行から、別の特定の文字列がある行までを抽出したいということがよくあります。 これgrep等を使うと苦労する話なんですが、flip-flop演算子を使ったPerlのone-linerで可能です。 例えば昨日の記事ではgit help commitの中から--no-edit/オプションの説明を抽出しました。 これは--no-editという文字列が出てくるところから空行までを抽出すれば良い。これは以下のようにすれば可能です。 $ git help commit | perl -nle 'print if /--no-edit/ ... /^\s*$/' 解説自体に空行が混じるケースでは以下のようにすれば良いでしょう。 この例では、--cleanupという文字列が出現してから、次のオプション(-文字列形式)が出るまでを抽出しています。 $ git help commit | pe

    grepでは困難な、特定文字列の存在行から別の文字列が存在する行までの抽出 (Perlのflip-flop演算子の使い方) - 理系学生日記
  • Githubにport:22 で push できなかった場合の対処法 - Qiita

    VagrantのCentOS環境下で、originで指定したリモートへアクセスしようとしたところ、以下のようなエラーがでました。 $ git push -u origin master ssh: connect to host github.com port 22: Connection timed out fatal: The remote end hung up unexpectedly

    Githubにport:22 で push できなかった場合の対処法 - Qiita
  • Gitで空のディレクトリを管理する方法の復習|リスティング広告運用代行専門|カルテットコミュニケーションズ

    リスティング広告正規代理店|Yahoo!プロモーション広告・Google広告完全対応|東京・大阪・名古屋 Gitで空のディレクトリを管理したい場合、.gitkeepという名前の0バイトのファイルを置いておくというのが慣習ですね。 管理対象にしたい空のディレクトリというのは、多くの場合、アプリが使用するキャッシュディレクトリや一時ディレクトリのようなものだと思います。 つまり、そのディレクトリがないとアプリによるファイルの出力が失敗してしまうのでディレクトリ自体は管理下に置いておきたいけど、アプリがそこに出力したファイル群は管理外にしたい、というケースです。 このような場合に、.gitignoreの設定やgit addの仕方など、具体的にどのような手順で運用するとすんなり行くかを復習がてらまとめてみましたので、参考にしてみてください。 .gitignoreの設定とgit addの方法について

    Gitで空のディレクトリを管理する方法の復習|リスティング広告運用代行専門|カルテットコミュニケーションズ
    larsson9
    larsson9 2015/11/27
  • dotfilesをGitHubで管理 - Qiita

    .(ドット)何とかってファイルを管理する方法です。 .vimrc,.vim,.bash_profile,.wgetrc何でも来たれです。 対象者:環境設定するのに毎回設定を書くのめんどくせんだよって思う人 前提条件:ドットファイルの設定を行っていること。GitHubについての基礎の基礎知識がある。 必要なソフト:git 終着点:環境設定がgit cloneによって一瞬で終わる。 GitHubにリポジトリを作成 まずは何はともあれGitHub上にdotfilesリポジトリが必要です。 サインインして右上の+ボタンからnew repositoryを選択して、リポジトリを作成しましょう。 先述したとおりdotfilesで作るのが主流みたいです。まぁなんでもいいけど。 repository nameのところにdotfilesって入力して、create repositoryボタンを押せばできます。

    dotfilesをGitHubで管理 - Qiita
  • [Git]コミットの取り消し、打ち消し、上書き - Qiita

    を叩けばOK。 --softオプション:ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用。 --hardオプション:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。 HEAD^:直前のコミットを意味する。 HEAD~{n} :n個前のコミットを意味する。 HEAD^やHEAD~{n}の代わりにコミットのハッシュ値を書いても良い。 gitのv1.8.5からは、「HEAD」のエイリアスとして「@」が用意されている。 HEAD~とHEAD^と@^は同じ意味。 HEAD^^^とHEAD~3とHEAD~~~とHEAD~{3}と@^^^は同じ意味。 ただしWindowsの場合はgit reset --soft "HEAD^"と、HEAD^を"で囲んでください。 git resetの詳細は、下記記事に詳しく書いているので、ぜひ参考にされてください。 ▼[g

    [Git]コミットの取り消し、打ち消し、上書き - Qiita
    larsson9
    larsson9 2015/05/14
  • git の add を取り消す - Qiita

    よく間違えて add してしまうので、 そうなってしまったときの対処方法です。 $ git reset HEAD sample.txt 以上! これで sample.txt は git のステージングから取り除かれ、 add する前の状態になります。 ファイルの内容は元のままなので、その心配は不要です。 後、ファイル名のところを . とすると、カレントディレクトリ以下全てのファイルを対象として、 add してしまったファイルを、git のステージングから取り除くことができる。 この操作は git に add してステージングに追加したファイルを、 ステージングから取り除く操作であるため、 この操作を行って add ファイルの内容が変わることは無い!無いんだ! とても便利だけど、いざ使い出すと色々なことで詰まってしまい、 自分の行う操作がやって良いことなのかダメなことなのか悩むときも多い g

    git の add を取り消す - Qiita
    larsson9
    larsson9 2015/05/14
  • Gitコマンドラインショートカット | POSTD

    私は多くの時間をターミナルの前で過ごしていて、そのほとんどをGitコマンドのタイピングに費やしています。ワークフローを高速化して、毎日何百というキーストロークを節約するために、Bashのエイリアスと関数を使って1組のコマンドラインショートカットを作りました。 Git Bashエイリアスと関数 Gitではエイリアスを設定できますが限定的であり、節約できるキーストロークは、ほんの数ストロークです(例えば、”git checkout”の代わりに”git co”とタイプすることはできますが、まだ”git”とタイプしなければなりません)。Bashはターミナルのデフォルトのコマンドラインインタープリタなので、Bashエイリアスを設定して、さらにキーストロークを減らすこともできます。 これが、私のGit Bashエイリアスと関数のリストです。ご自分のエイリアスや関数の保存先ファイル(例えば、~/.bas

    Gitコマンドラインショートカット | POSTD
  • Gitの使い方 -短縮コマンドの作成 - とあるプログラマの備忘録

    なんかインスコ時までエラーが出たりして最初から結構困らせてくれましたが、 初期設定?PGたるもの少しでも工数を減らす為に自分ように使いやすくしたい物 gitでは短縮コマンドを作成できるようなのでーつくることにしましたー (好みだからaliasは適当につくってください) 短縮コマンド作成 git config --global alias.[短縮名] '[元コマンド]'git commitの短縮を作ると・・・ git config --global alias.co 'commit'これでおk とりあえずcheckoutって名前がなんかしっくりこないのでch(change)の略?でchにしてみた git config --global alias.co 'commit' git config --global alias.st 'status' git config --global ali

    Gitの使い方 -短縮コマンドの作成 - とあるプログラマの備忘録
    larsson9
    larsson9 2014/08/18
  • 引数なしのgit pushは危険なので気をつけましょう · DQNEO日記

    絨毯爆撃pushの例 いまmasterブランチに、未プッシュのコミットがあるとします。 ここで、新たにbr1ブランチを作ってチェックアウトします。 $ git checkout -b br1 master $ git branch * br1 master br1ブランチでコミットを作ります。 echo hello >> hello.txt git add . git ci -m "add file" 引数なしでプッシュします。 git push すると、どこに何がpushされると思いますか? 実は、master -> masterにpushされます。 masterがまだpushできる状態でない場合、これはかなり痛い。すごく痛い。頭が頭痛でおなかが腹痛。 しかもpushしたかった当のbr1ブランチはpushされないというオチ。(リモートにbr1ブランチがない限りは) この挙動は大半のユーザ

  • 複数のgitリポジトリを使う - IwazerReport

    会社ではGitHubGitHub Enterprise、社内のGitリポジトリの3つ、家でもGitHub、個人Gitリポジトリの2つのGitリポジトリを使っています。 それぞれ違うsshキーを使いたいので、ssh-keygenするときにファイルを分けた場合、ssh-addコマンドで追加しておくと自動的に使ってくれるようです。 ssh-keygen -t rsa -C 'your@address.com' -f ~/.ssh/specified_filename できた公開キーをリポジトリに登録。 ssh-add ~/.ssh/specified_filename こうしておけば自動的に使ってくれます。 テスト。 ssh -vT git@github.com

    larsson9
    larsson9 2014/05/21
  • githubで複数のリポジトリを管理するときにはまったこと - voidy21の日記

    はまったこと % git remote show jkc ERROR: Permission to voidy21/JavaKusoCode denied to voidy21/dotfiles. fatal: The remote end hung up unexpectedly とか言われて何もpushとかさせてもらえない状態になった 結論から言うと それぞれのリポジトリのDeploy KeysとAccountのPublic Keysは同じものを使ってはいけない! 逆に言えば、アカウントを持っている張人の場合、Public Keyさえ登録すればDeploy Keyは登録する必要が無いということです! 以下個人用メモ(Ubuntuでgithubを使う場合) ssh公開鍵を作る % cd ~ % ssh-keygen ~/.ssh/id_rsa.pubをコピーしてhttps://gith

    githubで複数のリポジトリを管理するときにはまったこと - voidy21の日記
    larsson9
    larsson9 2014/05/21
  • Git - リモートでの作業

    1. 使い始める 1.1 バージョン管理に関して 1.2 Git略史 1.3 Gitの基 1.4 コマンドライン 1.5 Gitのインストール 1.6 最初のGitの構成 1.7 ヘルプを見る 1.8 まとめ 2. Git の基 2.1 Git リポジトリの取得 2.2 変更内容のリポジトリへの記録 2.3 コミット履歴の閲覧 2.4 作業のやり直し 2.5 リモートでの作業 2.6 タグ 2.7 Git エイリアス 2.8 まとめ 3. Git のブランチ機能 3.1 ブランチとは 3.2 ブランチとマージの基 3.3 ブランチの管理 3.4 ブランチでの作業の流れ 3.5 リモートブランチ 3.6 リベース 3.7 まとめ 4. Gitサーバー 4.1 プロトコル 4.2 サーバー用の Git の取得 4.3 SSH 公開鍵の作成 4.4 サーバーのセットアップ 4.5 Git

    larsson9
    larsson9 2014/05/21
  • こわくない Git

    8. コミットに入ってる情報 リビジョン (SHA-1 ハッシュ) 例: 23cdd334e6e251336ca7dd34e0f6e3ea08b5d0db Author (コミットを作成した人) 例: オープンソースプロジェクトにパッチを送った人 Committer (コミットを適用した人) 例: 受け取ったパッチを取り込んだ人 ファイルのスナップショット (tree) コミットで変更されたファイルを含むツリー(説明は省略) 1つ前のコミットのリビジョン 例: 4717e3cf182610e9e82940ac45abb0d422a76d77 9. コミットに入ってる情報 リビジョン (SHA-1 ハッシュ) 例: 23cdd334e6e251336ca7dd34e0f6e3ea08b5d0db Author (コミットを作成した人) 例: オープンソースプロジェクトにパッチを送った人 Co

    こわくない Git
  • GITでリモートブランチへpushする前にやっておくべきこと - ITエンジニアとして生きる

    先日GITを使ってて、ちょっとお粗末なミスをしてしまいました。 今日はそんなミスを犯さないためにやっておくべきことについて書きたいと思います。 お粗末なミス私がやっちゃったミスは、ずばり「コミットグラフ汚し」です。 図のように、「別の人」とのマージコミットをコミットグラフに追加してしまいました。 このときのコミットグラフ マージコミットのメッセージは 「Merge branch 'xxxx' of ....」 「Merge commit 'xxxx'」という質的でないメッセージになります。 この「マージした」という情報は「自分 <==> ある時点でのコミット」のマージを指しており、チーム全体(リモート)として意識するようなコミットログではありません。 このようなコミットをしてしまったことによって、リモートブランチのコミットグラフの見通しを悪くしてしまいました。 来はこのようなコミットロ

    GITでリモートブランチへpushする前にやっておくべきこと - ITエンジニアとして生きる
    larsson9
    larsson9 2013/12/05
  • 1