Gitのリポジトリは、GitHub上にあります。
自分がGitを利用するときにやっている事
bash
1$ git branch aaa 2$ git checkout aaa 3 4aaaブランチであれこれ作業。 5終わったらpush 6 7$ git add . 8$ git commit -m "commit!!" 9$ git push origin aaa 10 11aaa ブランチをpushしたら、mainブランチに戻ってmerge 12 13$ git checkout main 14$ git merge aaa 15
という流れの作業が前提の条件です。
その後、表題のコマンドを実行した時にイメージとしてはこんなの
※あくまでも脳内なので雰囲気としてご理解下さいませ。。。
Image
1* d01aa7e (HEAD -> main, origin/main, origin/HEAD) RS422情報の大区分データが複数ある場合のコードだけ実装した。 2| 3* b06469a (rec_save -> main merge) Linux向けヘッダーの機器番号をパラメータで指定できるように実装 4|\ 5| * 7e7362d (rec_save) コマンドファイルの削除タイミングを、要求送信後に削除するように修正 6| | 7| * 2a52462 (rec_save) テキストファイル作成による要求送信と応答/通知受信の実装 8| | 9| * 6f20b82 (rec_save) コマンドファイル検出用タイマーの時間間隔を300msecに変更 10|/ 11* b06469a (send_cmd -> main merge)Linux向けヘッダーの機器番号をパラメータで指定できるように実装 12|\ 13| * 7e7362d (send_cmd) コマンドファイルの削除タイミングを、要求送信後に削除するように修正 14| | 15| * 2a52462 (send_cmd) テキストファイル作成による要求送信と応答/通知受信の実装 16|/ 17* 8bb34d2 Initial commit(main)
を想像していたのですが、結果は以下の通り一本道。
自分のGitの利用方法が間違っているのかわからず投稿しました。
リポジトリはGitHub上にあります。
bash
1$ git log --all --oneline --graph 2*d01aa7e (HEAD -> main, origin/main, origin/HEAD) RS422情報の大区分データが複数ある場合のコードだけ実装した。まだテストし 3ていない。 4*ef41f67 30秒ごとのCMD送信時にCSV保存していなかったので実装 5*f3de0b5 RasPi4側の送受信バイナリについて、CSVフォルダに保存する処理を実装した。RasPi4側全要求完了 6*1401561 STXとETXの受信バイナリをCSVファイル化する処理を実装 7*9a87842 30秒毎に発信するバイナリデータも保存するように実装 8*3e9fa94 ログ関連を保存するフォルダを作成し、binフォルダの中に送受信したバイナリデータを保存する処理を実装 9*8b9f55f 装置指示情報のアスキー化処理実装と、バイナリ受信データのファイル保存処理実装 10*de86a5e Linux側で取得したIDをRasPi4側で読み込む処理を実装。 11*43d6ea6 接続要求応答からIDを抜き出し、ファイルに保存する処理を実装 12*b06469a Linux向けヘッダーの機器番号をパラメータで指定できるように実装 13*6f20b82 (rec_save) コマンドファイル検出用タイマーの時間間隔を300msecに変更 14*7e7362d (send_cmd) コマンドファイルの削除タイミングを、要求送信後に削除するように修正 15*0a4b70d IDデータの入力と装置情報要求の初期データ設定 16*2a52462 (origin/send_cmd) テキストファイル作成による要求送信と応答/通知受信の実装 17*c52f7cb コマンドファイルを検知し、main側に通知する仕組みを実装。 18*22d14de プロジェクト開発のフェーズ2スタート 19*8bb34d2 Initial commit
上記の通り、なんの分岐表示もなく、ただただ時系列にPushした結果が並んでいるだけです。
これが正しいのかもわからず。
gitコマンドの使い方が間違っているのか否かわからず。
ご存じの方からのご教示を求めます。
■2022/03/06 追記
git branchした結果を追記します。
~/src/lang/go/tcho $ git branch
- main
rec_save
send_cmd
git branch
の結果を見せてください
依頼ありがとうございます。
↓↓↓
~/src/lang/go/tcho $ git branch
* main
rec_save
send_cmd
はて、、、、
もうしわけない、私の力を超えてます
んーー。左様でございますか・・・・
なんだか気持ち悪くて、自分のお作法が問題なのかGitHubの問題なのか。。。
とにかく試行錯誤をして下さったこと、ありがとうございました。
git log --all --oneline --graph したら各行の先頭に * が付くはずでは…。
いずれにせよ、履歴のツリー表示は GUI の方が見やすいので、SourceTree などを使ってみては。
また、github のリポジトリを公開されてるなら、URL を教えてくれれば見てみますけど。
oshi-takanori様
申し訳ないです。
お恥ずかしながら、公開用のリポジトリをGitHub上に作ったことがなく、昨晩別アカウントで公開用リポジトリを作成して試してみようとしたのですが、、、、
複数アカウントを同じPCで扱う設定に試行錯誤中で、まだ公開できてません・・・
どうも私はGitで苦労する人種の様子です・・・これを機械に学びます。。
リポジトリごとに公開と非公開を指定できるので、GitHub アカウントを分ける必要はないはず…。
というか、たぶん kyokio さんの回答の通り、git merge で --no-ff を指定しなかったので --ff (fast forward) 扱いになっちゃったのでしょうね。
回答ありがとうございます。
アカウント名が思いっきり企業名とサービス名に直結しちゃってるんで・・・
--no-ff オプションを試してみます。
これはこの流れで質問してもルール違反にはならないのかちょっと心配ではありますが・・・
$ git branch ddd
$ git checkout ddd
としてあらたなブランチを作り、
$ git add .
$ git commit -m "areya koreya"
$ git push origin ddd
とした後に
$ git log --all --oneline --graph
すれば、分岐していると思ってたんですが違うんでしょうか?
分岐は、git merge を実行したときに表示されるもの???
ちなみにですが、SourceTreeでも一本になっちゃってるんです。
このままだと branch ddd には何も修正が掛かっていないし、
もとになったbらんchも何も修正がかかって居ないのですから、
branch dddを作ったことによる枝分かれは まだない
ですね。
ddd と もとになったbranchの両方に修正がかからないと。
git push origin ddd の直後に git log --all --oneline --graph すると
* yyyyyyy (HEAD -> ddd, origin/ddd) areya koreya
* xxxxxxx (main, origin/main) old commit
...
って感じになるはず。
その後ローカルでマージするなら、
$ git checkout main
$ git merge --no-ff --no-edit ddd
$ git push origin main
とすれば、git log --all --oneline --graph は
* zzzzzzz (HEAD -> main, origin/main) Merge branch 'ddd'
|\
| * yyyyyyy (ddd, origin/ddd) areya koreya
|/
* xxxxxxx old commit
...
って感じになるはず。
または、git push origin ddd の後に GitHub 上でプルリクを作ってマージしても同様になるはず。
(プルリクのマージの際に squash すると yyyyyyy はなくなりますが…。)

回答1件
あなたの回答
tips
プレビュー