Git 17

■ このスレッドは過去ログ倉庫に格納されています
2020/09/02(水) 12:18:30.39ID:XN0SxNMq
ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。

Git - Fast Version Control System
http://git-scm.com/

◆関連サイト
Pro Git - Table of Contents
http://git-scm.com/book/ja
Git入門
http://www8.atwiki.jp/git_jp/

◆前スレ
Git 15
http://mevius.2ch.net/test/read.cgi/tech/1486239735/
Git 16©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1502726047/
-
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2020/11/17(火) 12:46:30.93ID:sslQDmWT
Visual Studioのプロジェクトにはプロジェクトファイルやリソースファイルも含まれていて、
UTF16やShift-JISで自動的に生成されるものが多いけど、
これらのファイルもUTF8にして運用するのがGitのやりかたということでしょうか?
MacやLinuxなどに持ってくることは考えていないです。
2020/11/17(火) 13:15:25.09ID:kX22Q/MP
別にutf8に固執する必要なんてないよ
2020/11/17(火) 13:54:19.11ID:ep69fhBS
UTF-16でもUTF-8でもいいよ
Unicodeならどっちでもいい
2020/11/17(火) 13:55:20.25ID:CjRdGkWC
Gitだと文字コードや改行コードが考慮されないから、Windowsだけで開発するならUTF8以外でもいいいけど、いずにせよ固定しないといけない
2020/11/17(火) 13:56:26.00ID:WArcbn8k
SJISでもいいといえばいいけど、LinuxユーザーやMacユーザーがメンバーにいると困ることになると思う
2020/11/17(火) 14:19:48.15ID:9dDm78mO
>>237
質問者はWindowsだけって言ってるだろ
2020/11/17(火) 14:22:19.09ID:NE44coqD
WindowsだけならSJISはまずいな
海外のWindowsじゃ使えない
やっぱりUTF-16じゃないと
2020/11/17(火) 14:26:50.42ID:3/q4MWZe
SJISのファイルを英語版のWindowsに持っていったら、Windows Indexとかどうなるんだろうな
2020/11/17(火) 17:01:55.47ID:74wM5f1E
batファイルがCHCPだけで問題なく使えれば全部UTF-8にできるんだがなあ
現実解でいえば多少Shift JISのソースが混ざることもあるよ
Gitでは困らないけど統一できるならしたいところ
2020/11/17(火) 17:11:02.74ID:nHdTOcnh
>>241
バッチファイルだけだよって言ったほうがわかりやすいw
243137
垢版 |
2020/11/17(火) 18:47:44.20ID:lJA+qRYx
>>241
Power Shell使わせたら?
バッチファイルしか使えないような環境は未サポートでいいだろ。
2020/11/17(火) 18:57:03.90ID:3gEjvWlt
>>243
勝手なこと言うなよ
245233
垢版 |
2020/11/17(火) 22:52:01.91ID:qU694wOR
何度もすいません。必ずしもUTF8にする必要はないということは、
SourceTreeで差分などが文字化けするのは諦めた上でということですか?
それとも、Shift-JISやUTF16のファイルが混ざっていても
文字化けさせない方法があるのでしょうか?
2020/11/17(火) 23:00:53.88ID:w1s1A3Uh
端的に言ってsourcetreeがアホってこと
2020/11/17(火) 23:25:46.72
空ディレクトリはプッシュできないのはなぜですか
2020/11/18(水) 00:17:09.23ID:cMpWLiaN
gitはファイルしか管理していない。
ファイルパスを保存しているからディレクトリが有るように見えるだけ。
2020/11/18(水) 00:57:04.47ID:dj5RIL/l
>>247
https://gist.github.com/dritoshi/2168873
2020/11/18(水) 01:10:01.63
>>248,249
ありがとうございました
2020/11/18(水) 04:02:44.61ID:uoM+CD8t
>>245
差分はwinmergeがおすすめよ
文字コードの認識能力は高いし、多くの改行コードにも対応してる
難点は、いろんな文字コードや改行コードが混ざってても気づかないところかw

gitとの連携もできるしね
2020/11/18(水) 08:35:52.41ID:kXa1mHp5
>>251
改行コードが混在してるときはMixedってステータスバーに表示されたかと
253137
垢版 |
2020/11/18(水) 12:24:59.97ID:6GRC5GM1
>>247
作業ディレクトリなどのように中身のファイルを無視したい場合は、.gitignoreを例外として全ファイルを無視する.gitignoreを入れておくといい。
2020/11/18(水) 12:36:04.63ID:t3uJEQyj
>>246,251,252
ファイルごとの文字コードは無理に統一せずに、
UTF16やShift-JISのときはSourceTreeの差分表示は文字化けさせたまま、
WinMergeで比較を行うということですよね?

WinMergeは普段から使っているので、
SourceTreeで文字化けしていてもGitの管理上は問題ないのなら、
それが楽かもしれないです。
2020/11/18(水) 18:13:59.21ID:aBokwQ7L
WindowsユーザーのGit初心者はTortoiseGitを使うのが一番楽だと思う
同梱のdiffツールも十分実用的
シェル統合は好き嫌い別れるけど文字化けのようなトラブルを独力で解決できるなら好きなツールを使えばよろし
256137
垢版 |
2020/11/18(水) 19:18:43.32ID:6GRC5GM1
開発初心者なら、こだわりのエディタとかないだろうから
Visual Studio Code + Git Graph
を使わせるのが一番いいと思う。
gitの機能がeditorに統合されているとやっぱり楽よ。
2020/11/18(水) 19:21:49.89ID:9OxgFlRx
コミットの改ざんを直感的なUIで出来るアプリほしい
コミットをくっつけたり
変更範囲の広いコミットを分割したり
コンフリクトを解消したり
258デフォルトの名無しさん
垢版 |
2020/11/19(木) 14:59:14.84ID:MCajbxoP
すいません
初心者なのですが、以下の状況に陥りました

1.origin/masterからブランチAを作成した
2.作業が途中だったが、他の作業が発生したのでAをコミットせずにスタッシュした
3.origin/masterからブランチBを作成した
4.ブランチBをコミットしてorigin/masterへマージした
5.ブランチAの作業を再開しようとしたらコンフリクトが発生した

ブランチAのチェックアウトもプルもスタッシュの復帰もできないのですが、
どの手順でAの作業を再開すればよいのでしょうか?
2020/11/19(木) 15:04:04.00ID:MmDwDVMn
A のチェックアウトで何かエラーが出るの?
2020/11/19(木) 15:33:04.91ID:s5sCnCc3
>>258
6.テキストエディタでソースコードのコンフリクトした箇所を修正しAの作業を再開した

これだけ
2020/11/19(木) 15:38:04.08ID:s5sCnCc3
svn脳だと、ああコンフリクトしてしまったと天を仰ぎ
一体全体どうすればいいんだと嘆き悲しみ、大混乱が発生し
やがてコンフリクトとそれを引き起こした人に対して憎悪を抱くようになるが
git脳では日常的にある作業の一つでしかない
262デフォルトの名無しさん
垢版 |
2020/11/19(木) 15:43:25.31ID:MCajbxoP
>>259
以下です
The following untracked working tree files would be overwitten by checkout.
〇〇(ファイル名)
2020/11/19(木) 15:44:00.04ID:s5sCnCc3
コンフリクトじゃねーじゃん
2020/11/19(木) 15:51:46.78ID:IwXUzkye
ワロタwwwww
265デフォルトの名無しさん
垢版 |
2020/11/19(木) 16:04:24.67ID:MCajbxoP
コンフリクトしているのでもう一度スタッシュし直したら
チェックアウト時に上記のエラーとなりました。
266デフォルトの名無しさん
垢版 |
2020/11/19(木) 16:10:41.62ID:MCajbxoP
最終的にmasterがこのようなツリーになると助かるのですが、可能でしょうか?
https://dotup.org/uploda/dotup.org2312003.png
2020/11/19(木) 16:11:05.59ID:80weRq09
何番の話ですか?
2020/11/19(木) 16:11:36.42ID:80weRq09
>>266
だからコンフリクトを直せと
2020/11/19(木) 16:12:05.47ID:80weRq09
だからテキストエディタでソースコードを修正してコンフリクトを直せと
2020/11/19(木) 16:14:39.10ID:80weRq09
コンフリクトという用語を知らないなら

テキストエディタでソースコードを修正して動くようにしてコミットしろ
271258
垢版 |
2020/11/19(木) 16:24:02.88ID:MCajbxoP
>>267

>>258の話です

皆さん、ありがとうございました
とりあえずマージしてみます
2020/11/19(木) 16:26:26.84ID:r3/rn3nu
>>258
visual studio code + git graph
IntelliJ
みたいなテキストエディタ含めてgitと連携する環境をしっかり作ったほうがいいよ。
ややこしいコンフリクトもずいぶん楽になる。
2020/11/19(木) 16:32:13.25ID:6J1HULFT
>>271
>>266にしたいならマージよりもリベースじゃないかな
2020/11/19(木) 19:24:09.28ID:edxpyLrT
GitだろうとSubversionだろうとコンフリクトしたら、一つ一つソースコード読んで正常動作する状態にエディタで修正するしかない
275258
垢版 |
2020/11/19(木) 19:26:05.64ID:MCajbxoP
>>270
とりあえずブランチAのコミットまで出来ました
ブランチAのチェックアウトが出来ないのはAに原因があると誤解していました

作業中のブランチに差分が出てしまっていたのが原因でした

お騒がせしました
2020/11/19(木) 19:27:23.27ID:I6H01ZjG
何もできなくなる時がたまにあって困る
cloneからやり直し
277258
垢版 |
2020/11/19(木) 19:32:28.60ID:MCajbxoP
>>272
ありがとうございます
導入します

>>273
ブランチの途中コミットはそれほど大切ではないのでリベースにするかもしれません

>>274
慣れるよう精進します
2020/11/19(木) 20:29:59.17ID:MKpNlHWc
途中コミットが大切ではないってのはリベースとスカッシュを混同してそう
2020/11/19(木) 21:12:30.26ID:9L+0VoU7
スカッシュとstash混同してますよ
280デフォルトの名無しさん
垢版 |
2020/11/19(木) 21:30:53.05ID:s+3w0EIq
高卒にはスカッシュわからんか。
2020/11/19(木) 21:33:25.20ID:B6Ba+nPY
スカッシュさわやか
2020/11/19(木) 21:49:51.48ID:+ya+1J+2
スカシュッペ
2020/11/20(金) 09:09:05.28ID:kz/VI7H0
stashってさ、やってる事は臨時ブランチでコミットと同じ認識で合ってる?
イマイチ存在理由がよくわからんのだが
2020/11/20(金) 11:22:12.97ID:9Dj+1g2T
>>283
英語の意味でも調べたら?
2020/11/20(金) 11:23:09.81ID:9Dj+1g2T
あと存在理由がわからんやつは、プログラマじゃないだろうな
あれだろマージ担当者とかだろw
2020/11/20(金) 12:52:35.74ID:sJptOchs
その理解でいいと思いますけど、ブランチと同じように使おうとすると、別ブランチでpopしたときに悲しいことになります。(確か現在の作業領域にpopするだけでしたよね?)
自分だったら素直に臨時コミットを作ります。add . && ci -m "tmp"だけで済みますし。
あとツールの問題もあって、gitkを使ってるんですけど、最後にstashした位置にしか表示されないのでわかりづらいです。最近使ってないので直ってるかもしれないですが。
2020/11/20(金) 12:53:16.66ID:sJptOchs
s/ブランチと同じ/コミットと同じ/
2020/11/20(金) 15:13:30.13ID:chBH1D/L
間違ってpopしたらまたstashするね
popが怖いなら常にapplyするね
stashにはHEADがstashを指すことがないので現在地を意識不要という利点もある
楽さを取るか、作業ブランチ一本槍のシンプルさをとるか、好きにするよろし
2020/11/20(金) 15:20:00.20ID:chBH1D/L
stashが起点に縛られないという性質は、割とどこにでも適用できるという利点の裏返しでもある
急なインスピレーションで作業開始して、あとで然るべき適用先を探すようなアブノーマルさも優しく受け入れる懐の深いいいやつ
290デフォルトの名無しさん
垢版 |
2020/11/20(金) 18:20:42.82ID:FeyWRiQw
♪無能な奴らが夕暮れさらに無能な奴を叩く
2020/11/20(金) 18:44:55.52ID:O1/V8Q7J
下には下がいるんだよ
2020/11/20(金) 21:50:38.63ID:NdjY04o9
俺はdiffをファイルにしておいてあとでpatch適用するわ
2020/11/22(日) 03:19:35.07ID:SPm0fWZA
>>292
俺も20年前はそうしてたな
2020/11/26(木) 14:43:56.01ID:CHu2Dr8c
windowsでdiff-highlightを使う方法を教えてください
2020/11/26(木) 23:24:52.51ID:nMGuNDj4
まずvscodeを入れます
2020/11/27(金) 01:18:57.58ID:0ROuVY6R
次にちんぽをなめます
2020/11/27(金) 01:44:34.63ID:qCpklAmW
はい、今なめました
次はどうすれば?
2020/11/27(金) 09:25:01.31ID:dsaw8Dph
体が柔らかいんだな
2020/11/27(金) 19:12:07.98ID:VqzZxTPq
なめたのは姉のちんぽです
2020/11/28(土) 09:16:37.14ID:d3Dzvo13
ちんぽ持ちの姉とか羨ましい
2020/11/29(日) 19:01:51.61ID:P9IxyqDK
github上に残したくないあるディレクトリ以下のファイルを全て履歴から削除したいんですが
コミットするときにそのディレクトリだけでなく、他のディレクトリの残しておきたいファイルも一緒にこみっとしてます
どのように履歴から消せますか?
2020/11/29(日) 19:04:59.97ID:sOEBQUsx
ちんぽ姉
あんぽ柿
少し似ている
2020/11/29(日) 20:11:24.34ID:4Sa9/2cA
>>301
具体的な手順はいくつかあるが、例えば
不要ファイルを削除するコミットを作って、rebaseして不要ファイルを追加したコミットにsquashしてやる。
2020/11/29(日) 20:18:01.37ID:bza0LWNC
めんどくさ
コミットをエクスプローラーで開いてセーブしたらコミットが上書きされる単純明快な機能があればいいのに
2020/11/29(日) 20:48:16.87ID:WDgQGVrN
コミットをエクスプローラで開く???
2020/11/29(日) 20:58:21.93ID:sV/hNKwx
そんなことができたんじゃ何のためのSCMでリポジトリなんだかわからんな。
2020/11/29(日) 23:21:50.15ID:7a+fWiSw
変更履歴を管理するというとイミュータブルな印象を受けるけど
実用上は別にイミュータブルである必要はない
というか履歴を後から整理して追跡しやすくしたほうがメンテナンス性は上がるのだからむしろミュータブルであるべき
2020/11/29(日) 23:29:02.85ID:7a+fWiSw
例えば物理的なコミットAには論理的な変更1と変更2が含まれてるとしてだ

* コミットAの後ろに新規コミットBを挿入
* コミットAをチェックアウト
* 変更2を手動で取り除く
* コミットAを保存

とすると履歴が変更1と変更2に綺麗に分かれる
こうしたほうが履歴が遥かに綺麗になる
SCMはこういう操作がもっと直感的に簡単にできるべきなんだよ
2020/11/29(日) 23:37:00.37ID:+p4clpep
>>304
どうやって複数のファイルの修正を一つのコミットにまとめるんだ?(苦笑)
2020/11/29(日) 23:42:11.74ID:7a+fWiSw
>>309
エクスプローラーで
2020/11/29(日) 23:56:04.91ID:+p4clpep
>>308

* 変更2を手動で取り除く
* コミットAにgit commit --amend
* CTRL+Zを押して変更を手動で戻す
* コミットBとして保存

もっと簡単にできるが?
2020/11/29(日) 23:56:36.12ID:+p4clpep
>>310
エクスプローラーにそんな機能はありません
新しい機能の仕様を書いてください
2020/11/29(日) 23:58:51.16ID:7a+fWiSw
>>311
直感的じゃない
2020/11/30(月) 00:14:22.73ID:XdYfXM2+
こうかな?
git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch フォルダのパス'
BFG Repo-Cleanerを使うともっと性能がいいらしい
2020/11/30(月) 01:13:30.64ID:rn09M8ye
>>313
直感的だろ
前のコミットを修正して
次のコミットを追加するだけだ
2020/11/30(月) 01:36:20.12ID:mKaKPR0T
別にいいんでないの?
pushするときにコミットまとめる機能があれば
2020/11/30(月) 07:40:01.87ID:yv0cTGob
エディタとかエクスプローラの操作でgitコマンドが発行されるソフトを作ればいいんでないの
2020/11/30(月) 08:59:23.49ID:XdYfXM2+
まんまTortoiseGitの設計思想っぽいな
ディレクトリツリーに加えて歴史という時間軸があるからエクスプローラという枠を大分越えてるだろうけど
しかも今回みたいなお題はTortoiseではなくfilter-branchみたいに時間軸に対して効くコマンドを使わないと手作業が増えて堪んないと思う
2020/12/01(火) 14:18:01.57ID:PZkLMkoH
>>304
ワンピースのうるてぃが言うセリフ
2020/12/05(土) 09:00:05.43ID:1DQ0XHCl
そんなにいいか?
2020/12/05(土) 13:52:03.76ID:zyjWjIMj
>>320
ワンピース見たことない
2020/12/05(土) 13:58:25.83ID:++4jxPOM
>>321
https://ec.toranoana.jp/tora_r/ec/item/040030317734/

読んどけ
2020/12/05(土) 15:03:10.78ID:Opj7igsw
18歳未満なので見れませんね
2020/12/05(土) 15:06:02.47ID:++4jxPOM
巻末(?)の妹「ワンピースみたいな漫画かいてよ!」
→わんぴいすというこんな漫画を書いてるよ
は涙モノなのにな
2020/12/06(日) 15:47:36.02ID:IaKTyiK3
GitHubなどのサイト上では、ファイルごとの履歴を見ることはできないのでしょうか
2020/12/06(日) 15:52:47.62ID:Wgt8J/wa
git diff --name-onlyで削除したファイルは表示しない方法を教えてください
2020/12/06(日) 18:19:05.42ID:RoBzUJJX
>>325
Historyをクリックしたら見れますよ
2020/12/06(日) 20:46:49.91ID:IaKTyiK3
>>327
完全に見落としていました。ありがとうございます。
2020/12/06(日) 22:36:04.58ID:gzaeHJce
>>326
git diff --name-only --diff-filter=d かな?
330233
垢版 |
2020/12/08(火) 00:08:05.40ID:VF8E4fJS
「わかばちゃんと学ぶGit使い方入門」という本を読んでるのですが、
140ページのコンフリクトの解決って、本の通りにできますか?
元々のmasterは5月6日開催なのに、5月6日の方を採用したら、
変更なしになってコミットできなくなってしまうのですが。
2020/12/12(土) 09:01:14.04ID:KjC8Y+C6
git subtreeでハマってます。どなたかお助けを。

まず以下のコマンドで別のプロジェクトのHogeを取り込みました:
git remote add Hoge <HogeのURL>
git subtree add --prefix=sub/Hoge --squash Hoge master

で、Hogeのmasterで変更があったので、取り込みたいと思い
git subtree pull --prefix=sub/Hoge --squash Hoge master

これが Can't squash-merge: 'sub/Hoge' was never added. というエラーで
失敗してしまいます。実際 git subtee add の時点でsub/Hogeにはちゃんと
ファイルができてるんですが、never added とはどういうことなんでしょう。
2020/12/12(土) 13:41:45.16ID:MG/EKh+i
ピーターパンツの国
2020/12/12(土) 19:03:59.98ID:s2JPaqvY
subtreeをaddしたということを一度pushしなくていいの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況