• ベストアンサー

gitの開発のすすめ方について

git clone -url- で、ローカルにリポジトリを作るまではいいのですが、 そのリポジトリで作業するべきでしょうか? それとも、さらにローカルにブランチを作って作業するべきでしょうか? 細かな変更までログに残って煩わしくなってしまわないか心配しています。 subversionは使ってましたが、 gitは初心者です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ahoo_ok
  • ベストアンサー率31% (30/95)
回答No.3

gitそのものになれないうちにrebaseはやめておけ。 mergeを素直に使った方がいい。 >細かな変更までログに残って煩わしくなってしまわないか心配しています。 mergeするときに--squashオプションをつけてコミットを一つにまとめる。 masterはリリースされたソーズかあるように自分はしている。 開発は開発ブランチで作業。

ugougotrade
質問者

お礼

回答ありがとうございます。 なるほど、mergeの時にコミットをまとめるオプションがあるのですね。 rebaseはまだちょっと怖いので、 まずはmergeをしっかり使えるようにします。

その他の回答 (2)

回答No.2

ローカルの開発は、upstream と独立と考えると、 local というブランチを持つとして、 git branch local git checkout local [ この local ブランチに対して色々コミット ] upstream の変更を取り込むには、 [ local ブランチを綺麗にする ] git clean -fqdx git checkout master git pull git checkout local git rebase master で、local に、master の変更を取り込むことが可能です。 ただ、衝突することもありえます。

ugougotrade
質問者

お礼

回答ありがとうございます。 私がやろうと思っていることがまさにこれでして、 これが作業的に効率が良いか、一般的な手法かどうかが知りたかったのでした。 プロジェクトによるのだろうとは思いますが、 こちらのほうが、merge前の状態もすぐにテストできるメリットがあるのかなと。

回答No.1

commitしなければログは残りません。 言い換えれば、commitしたタイミングのものでなければバージョンを戻したり進めたりは出来ません。 コンパイル(デバッグ)完了してからcommitするのであれば、メインブランチをそのまま開発用に使えば良いと思います。 開発ブランチで作業をして、デバッグが完了したらメインブランチに取り込む方が良いという話もありますが、 その方法の必要があるのは、commitをトリガーにしてコンパイル(デバッグ)している人だけだと思います。

ugougotrade
質問者

お礼

回答ありがとうございます。 ローカルといえどさすがにビルドも通らない状態ではcommitしませんが、 ブランチを切って作業するのはやはり二度手間になりますかね。 なんかまだbranchをうまく使う方法がイメージできないです。

関連するQ&A

  • gitを使い始めた初心者です

    gitにはリモートリポジトリとローカルリポジトリがありますが、 疑問があります。 ①gitはブランチ作成元の情報を持っていますか?  ブランチを作成した後、何度かコミットしたとしてもブランチ作成元からの変更差分一覧を見れるのでしょうか? 前回のコミットからの差分は見れているのですが・・・。 ②ローカルで作成したブランチとリモートとの関係が分かりません。  たとえば、ローカルで田中部長アホという名前のブランチを作って変更を加えた場合、プッシュしたときに田中部長アホがリモートに作成されるのですか? もし、作成されない場合、私の変更はどこにプッシュされるのですか? (ローカルのブランチ名は他人にはばれないのですか?)

  • gitワーキングスペース最新に

    git リポジトリAを手元のlinux上にクローンしてきました。 git clone リポジトリアドレス . このクローンしたものをBとします。 Bからwindowsパソコンにクローンしました。 これをCとします。 Cで作業してBにプッシュするとなんか怒られて出来ませんでしたので、 Bにて git config --bool core.bare true してベアリポジトリに変更しました。 するとPCで作業したCからBへプッシュできました。 あるときBをノンベアリポジトリに戻しました。 git config --bool core.bare false この時Bのワーキングスペースは以前のベアリポジトリに変更した時のままでした。 このBのワーキングを今まで色々とCからプッシュした状態を 反映させたものにする必要が出てきたのですが、 どうやったら良いでしょうか? ※いずれもmasterブランチしかありません。

  • gitで過去のコミット履歴を非表示にしたい

    gitで過去のコミット履歴を非表示にすることは可能でしょうか? 現在プログラム編集を行っているリポジトリ内の一部ブランチだけを別のリポジトリにコピーして作業を行いたいと思い、 git remote add origin 追加したいリポジトリ このコマンドで、追加したいリポジトリに、一部ブランチをコピーしました。 新しいリポジトリ側でlogを確認してみたところ、コピーしたブランチがどのようにmasterから分岐してきたかの履歴もコピーされてきました。 基本的には、コピーしたブランチの最新の状態のみのコピーされていればよかったのですが、過去の履歴を非表示にする方法などはありますでしょうか? どうぞ、ご教示の程よろしくお願い致します。

  • GitのPullについて

    初めまして。 当方ソース管理のGitを勉強中なのですが、質問があります。 例えばリモートリポジトリのmasterブランチに古い順にA-B-Cとコミットがあったとします。 そしてAのコミットから「20180314」というブランチを切って一つコミット(D)してあります。 そこで今ローカルブランチ(20180314というブランチをまだ追跡していない状態)のmasterブランチ(ローカルの最新はA)でリモートのmasterをpullした場合、新しく「20180314」というブランチはできると思うのですが、Dのコミットについてもpullされるのでしょうか? 書き方が雑で分かりにくく申し訳ありません。 よく分からず困っているので、ご教授頂きたいです。 よろしくお願いします。

  • gitのクローンのやり方

    現在、/home/myname/git というフォルダに"hoge.git"というリポジトリを作成しました。 これを現在IPアドレスが192.168.163.129なのですが、これでクローンしたいです。 現在 /rootフォルダ内で "git clone /home/myname/git/hoge.git" これでhogeプロジェクトをクローンできました。 IPアドレスで ”git clone git://192.168.163.129/myname/git/hoge.git” これで同じことをしたいのですが、 これを行うと fatal: unable to connect to 192.168.163.129: 192.168.163.129[0: 192.168.163.129]: errno=Connection refused このようなエラーがでて、できないのですが、どうやれば良いでしょうか? どうぞ、ご教示よろしくお願い致します。

  • ラズパイでgit branch操作について

    現在ラズパイ3のgitコマンドで自分のPCで編集などをしたコードをgithub経由でクローンしてダウンロードしたいと思っています。 git clone https://github.com/KenjiMaehara/ServerClient20150702.git これで”ServerClient20150702”というプロジェクトフォルダをクローンしました。 一応、このプロジェクトは元々はラズパイで使うつもりではないプロジェクトだったので、とりあえずラズパイ関係のプロジェクトとして間借り的な感じで、ブランチとして”raspberrypi3_tcp_codes”というブランチを作成しました。 先ほどクローンしたこのフォルダ /home/pi/ServerClient20150702 こちらはブランチがどうなっているかを調べるため Gitを使いこなすための20のコマンド | OSDN Magazine https://osdn.jp/magazine/09/03/16/0831212 こちらのサイトの内容でブランチの切り替えについて調べてみたところ git branch これで確認できるとのことで、 /home/pi/ServerClient20150702 をカレントディレクトリにして git branchを行ったところ、 ServerClient20150702 * master このように出てきました。 もし、ブランチが複数あるならば ServerClient20150702 * master raspberrypi3_tcp_codes このように出てくると思うのですが、なぜ出てこないのでしょうか? 現在masterブランチに設定されているディレクトリ内容をraspberrypi3_tcp_codesブランチに切り替える方法をご教示いただきますよう、宜しくお願い致します。

  • 【Git】無視リストでもクローンさせたい。

    Git初心者です。 最近ようやくGitを導入し、TortoiseGitを使用しています。 早速質問なのですが、リポジトリから特定のファイルの 管理を除外するには無視リストに追加すればOKですが、 無視リストについてしてしまうと、クローン作成時に ファイルがクローン出来ません。 無視しているのだからクローンされないのは当たり前ですが、 出来れば日頃は差分が発生していても無視で、クローン作成時は 対象として含まれる、というような設定は不可能なのでしょうか?

  • 一人でもGitする価値は?

    主に一人でソフト開発している者です。 現在は、Subversionを使ってソース管理していますが、Gitが良いという話をよく聞くので乗り換えを考えています。 リモートとローカルのリポジトリの使い分けをざっくり理解したところ(だと思う)ですが、一人での開発だとGitでもSubversionでもあまり変わらないのかな?、新しい操作やコマンドを覚えるだけで終わってしまうのかなと思うと、なかなか踏ん切りがつきません。 そこで、一人で使ってもGitだとこんなことが便利とか出来るという利点があれば教えて下さい。 ちなみに、現在は開発PCは2台あり、同じプロジェクトの違う部分を別々に同時進行で修正・追加することがあります。 また、コミットの周期は短いほうだと思います。コンパイルが通らない状態でも今日の変更点のバックアップをする感覚でコミットすることもありますし、一方のPCから他方のPCへ変更点を移すためだけにコミットすることもあります。 ですので、リポジトリは汚れ気味です。ホントは、修正・変更のキリの良いタイミングだけをリポジトリに残したいのですが、Gitならそういう運用が可能でしょうか? 識者の方、ご意見をよろしくお願いします。

  • gitのクローンができない

    gitサーバーの動作ができていることを netstat -lpn -A inet このコマンドを実行して root@ubuntu:~/hogetest# netstat -lpn -A inet Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3400/cupsd tcp 0 0 0.0.0.0:9418 0.0.0.0:* LISTEN 1032/git-daemon tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1493/dnsmasq udp 0 0 0.0.0.0:59866 0.0.0.0:* 980/dhclient udp 0 0 0.0.0.0:59361 0.0.0.0:* 655/avahi-daemon: r udp 0 0 127.0.1.1:53 0.0.0.0:* 1493/dnsmasq udp 0 0 0.0.0.0:68 0.0.0.0:* 980/dhclient udp 0 0 0.0.0.0:631 0.0.0.0:* 1035/cups-browsed udp 0 0 0.0.0.0:5353 0.0.0.0:* 655/avahi-daemon: r これでgit-daemonが動作していることを確認しています。 なお、/etc/default/git-daemonの内容は次のようにしています。 root@ubuntu:/etc/default# cat git-daemon # Defaults for git-daemon initscript # sourced by /etc/init.d/git-daemon # installed at /etc/default/git-daemon by the maintainer scripts # # This is a POSIX shell fragment # GIT_DAEMON_ENABLE=true GIT_DAEMON_USER=gitdaemon GIT_DAEMON_DIRECTORY=/var/cache/git # Additional options that are passed to the Daemon. GIT_DAEMON_OPTIONS="" とりあえず、こちらのWEBページの内容に沿ってgit cloneをおこなってみました。 http://d.hatena.ne.jp/itmammoth/20130604/1370362997 ”GIT_DAEMON_DIRECTORY=/var/cache/git” この設定なので、/var/cache/gitフォルダ下に"myrepo.git"というリポジトリを作成しました。 それで、/root/hogetestフォルダ下に git clone git://192.168.163.129/myrepo.git とやってみたのですが、 次のようなエラーがでてクローンができない状態です。 root@ubuntu:~/hogetest# git clone git://192.168.163.129/myrepo.git Cloning into 'myrepo'... fatal: remote error: access denied or repository not exported: /myrepo.git このようなエラーの解決方法をご教示頂きますようお願い致します。 なお、ubuntuの日本語エディションをVMplayer6で動作させています。

  • [github]リモートリポジトリを過去に戻したい

    現在、gitでのバージョン管理を勉強中です。 自分の知識では、どうしても解決できないため、 申し訳ありませんが、git の運用をされている方に助けて頂きたいです。 githubをリモートリポジトリの場所として指定しています。 リモートリポジトリに間違ってpushをしてしまいました。 また、そのpushした物が大規模な間違いでした。 したいことは、ローカルリポジトリを過去のバージョンに戻すことではなく、 githubにあるリモートリポジトリを過去のバージョンに戻したいです。 戻すブランチはmasterではなく、masterからブランチした、 developというブランチを過去のバージョンにしたいです。 どなたか力を貸して頂けないでしょうか? また参考になるURLがあればよろしくお願い致します。

専門家に質問してみよう