この記事は abicky.net の 実践 git rebase --onto に移行しました
普通、git commit は何かしらの変更(git addとかgit rm)をした後でないとコミットできないですが、--allow-emptyオプションを使うと何も変更せずにコミットをすることができます。 git commit -m "空のコミット" --allow-empty この「空」という言葉は紛らわしいので要注意です。 「空の(empty)」といっても、本当にコミットオブジェクトの中身が空なわけではありません。 (本当に空だったらauthorやコミット日時などの付随情報を保持できないですよね?) そうではなくて、単に「前回のコミットからの差分がない」という意味です。 空コミットの中身を見てみる ではこの空コミットの実体はどうなっているのでしょうか? git cat-file -pで中身をのぞくことができます。 $ git cat-file -p <コミットハッシュ値> tree
削除されたか確認 $ git branch -r origin/HEAD -> origin/master origin/fuga 解説 $ git push --delete origin hoge 普通はこっちを使えばよいでしょう。 コロン記法と動作は同じです。 $ git push origin :hoge この構文の覚え方を説明します。 2つポイントがあります。 なぜ"git push"でブランチが削除されるのか。 なぜブランチ名を":hoge"と書くのか なぜ"git push"でリモートブランチが削除されるのか。 考え方としては、「"無"を送りつける」「nullで上書き」です。 Linuxいう/dev/null みたいなものです。 なぜブランチ名を":hoge"と書くのか よい質問です。 そもそも、git pushの構文を確認しましょう。 git push [remotenam
いつも忘れてしまうので、GithubであるプロジェクトをForkしてからPull Requestをするまでの流れをメモしたいと思います。今回、実際に私がこの流れを使っているCordova (PhoneGap) ドキュメントのプロジェクト、 https://github.com/apache/incubator-cordova-docs を例にやっていきたいと思います。 1. Fork する GithubでForkしたいプロジェクトまで行って、右上にあるForkボタンを押します。今回、 https://github.com/apache/incubator-cordova-docs をForkしたので、私のGithubアカウントkeiko713上では https://github.com/keiko713/incubator-cordova-docs というリポジトリが作成されます。 2.
Gitで間違ったコミットをリモートリポジトリに push してしまった後に、それを無かったことにするには、リモート側での作業が必要だと思っていたのですが、ローカルからの操作でもできることがわかったので備忘録的に書いておきます。 次の状態にあるとします。アルファベットはコミットだと思ってください。 リモート: A-B-C master ローカル: A-B-C-D masterローカルで変更を加えてDの状態になっています。 git push すると次のようになるのですが、 リモート: A-B-C-D master ローカル: A-B-C-D masterここで、D は間違いだったと気づきました。 リモートリポジトリの master のバックアップ用のブランチを作ります。これは必須ではありませんが、念のため。 % git push origin master:master_bakこれで次の状態に
分散バージョン管理を華麗に扱いたい堀口です。 GREE Advent calendar 2013 の 14 日目として参加させていただきます。 お二人に続き Haskell の話をしようかと思ったのですが、急遽無難な開発の話に変更しました :o Java や C++ には OOP の概念が必要であったように、分散作業の認識が薄いまま git や Mercurial を使うことは長期的に不幸をもたらします。 とあるプロジェクトにて、その一部を副産物のミドルウェアとして抽出すべく、アプリケーションと分離したい 不具合があったので原因を探りたいが、依存関係が複雑すぎるのでコードを読む量を減らしたい テストやレビュー、提案、リファクタの運用を強化したい よそのプロジェクトに迷惑を掛けないように、そこのツールを改良して使いたい。 いままで何気なく「こんなもんだろう」と思って手間をかけていませんでした
What is `Auto packing the repository for optimum performance.'Git 何か git-push をした時に Auto packing the repository for optimum performance. と言われた。日本語サイトをサッと見ても無いし、stackoverflow にあったので、メモ書き程度の翻訳。 !!注意!! 翻訳文は間違ってると思われるので、気をつけてね☆ 原文: what does “Auto packing the repository for optimum performance mean”? 質問の簡訳意訳: I'm having a problem with my git repo. For the last couple of days whenever i do a push to th
Git は少ない数のシンプルだが強力なアイデアで成り立っています。 それらを理解しなくても git を利用することはできますが、 理解することで git をより直感的に理解できます。 最も重要なコンセプトである オブジェクトデータベース と 索引(index) の説明から開始しましょう、 既に the section called “履歴の理解:コミット” で見てきたように、全てのコミットは 40桁の "オブジェクト名" で格納されています。実際、プロジェクトの履歴を 表現するのに必要な全ての情報は、そのような名前のオブジェクトとして格納されています。 それぞれの名前はオブジェクト内容の SHA-1 ハッシュによって 計算されています。SHA-1ハッシュは暗号学的ハッシュ関数です。 それはつまり、同じ名前を持つ2つの異なるオブジェクトを見つけるのが 不可能であることを意味します。このことは
ここの50mの指定は、50メガバイトということながら、内部では--windowの数(デフォルトでは10)の部分を一度に参照しながらするので、ここで無茶な指定をするとやはり落ちてしまう。(ちなみに--window-memoryのデフォルトは0でこれは無限を意味するらしい。)
会社で使ってる GitHub のプライベートリポジトリで master ブランチに対して出てる Pull Request を Merge したらコードが消えるという珍事があった。ファイルを削除する commit とかないにもかかわらず、全消しされてしまった。ちなみに同じ Merge を手もとでやるとコードが消えたりはせずちゃんと Merge された。極めて謎な現象だった。 master ブランチが空になるとデプロイができなくなって不都合があるので( Webistrano 上でデプロイするとき master ブランチからしかデプロイできないようなレシピになってる)、コードが消滅したブランチを bukkowaremaster にリネームして手もとで Merge したブランチを force push してしのいだ。 GitHub に問い合わせてみたところ、ぬるい感じの一次返信が来たので原因教えて
ungitはnode.jsで動くグラフィカルなgitクライアントです Learn Git Branchingみたいな直感的なGUIで操作できるので とても分かりやすいです インストール 今回はnvmを使用してnode.jsを入れます $ git clone git://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh $ nvm install v0.10.22 $ npm install -g ungit $ nvm use v0.10.22 ログイン時も有効にしたい場合は.bashrcに以下のように書いておきます if [ -d $HOME/.nvm/ ] then source ~/.nvm/nvm.sh nvm use v0.10.22 > /dev/null fi 起動 以下のコマンドで
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com. The version found here has been updated with corrections and additions from hundreds of contributors. If you see an error or have a s
GitHubにはコードの断片を管理したり人に見せたりブログに貼付けたりするのに便利なGistってのがあります。 通常の使い方では、ブラウザで貼付けたりとかすると思うのですが、GistもGitのリモートリポジトリなので、クライアントから使う事も出来ます。 ……ってのはGistにも普通に書いてるんですけどね。 Gist is a simple way to share snippets and pastes with others. All gists are git repositories, so they are automatically versioned, forkable and usable as a git repository. とりあえずやってみます。 色々やってみる まず適当に作ります。 GitHubはお金払わないとプライベートなリポジトリは作れないのですが、Gistだ
メモやちょっとしたスクリプトなどをペーストするとgitのリポジトリとして管理してくれるgistというサービスがあります。そのgistにコマンドラインから投稿するツールがあって、それは前に少し紹介したんですが、それをもうちょっと便利にしたものを作りました。 swdyh's gisty at master ― GitHub http://github.com/swdyh/gisty/tree/master gistコマンドとの違いはこんな感じです。 ポストするときにファイルを指定。ファイル名、拡張子つきでアップされる。 ポスト時に複数ファイルを指定できる。 ポスト後、ブラウザで開く。(Macのみ) ポスト後、ローカルにcloneする。 過去のgistにアップしたのを全部のclone、またはpullする機能 gistyを使うと簡単にファイル名と拡張子つきでポストできて、そのままローカルにclon
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com. The version found here has been updated with corrections and additions from hundreds of contributors. If you see an error or have a s
I made a branch called 'f' and did a checkout to master. When I tried the git pull command I got this message: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you can merge. When I try the git status, it gave me the following: On branch master # Your branch and 'origin/master' have diverged, # and have 1 and 13 different commit(s) each, respectively. # # C
ABOUT SEIRYOU GROUP 清凉グループについて 清凉グループでは、「あふれる笑顔~慈悲の心で~」を経営理念として掲げ、 地域における介護・保育ニーズにお応えすべく、複数の施設を運営しております。 今後も地域の皆様の生活に寄り添う場所として、個々の施設と連携し、よりよいサービスを追求していく所存です。 清凉グループからのお知らせinformation
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く