git初心者です。
testリポジトリ
┗testフォルダ
┗┗test1.py(masterブランチ)
上記はリモートリポジトリになります。
この時、上記既存のリモートリポジトリ(masterブランチ)のtestフォルダ配下に、test2.pyをpushしたいと考えているのですが、
下記コマンドのやり方であっているかご確認していただきたいです。
①git clone http://~~~~/testリポジトリ
②cd test
③touch test2.py
④git add test2.py
⑤git commit -m
⑥git push origin master
上記①~⑥の手順を合っておりますでしょうか?
また、初めのgit cloneについて、上記既存のリモートリポジトリに新規にファイルなどをpushする際は、
必ずgit cloneを行わなければならないと思っておりますが、こちらは必ずgit cloneを行うのでしょうか?
git cloneを行う際に、リポジトリの中身の容量が多いと、時間がかかるなどのデメリットがあるため、
test2.pyを既存のリモートリポジトリに新規にpushする際に、良いやり方はございますでしょうか?
ご回答のほどよろしくお願い致します。
git では、一つのファイル(または一部のディレクトリ)だけを push することはできません。既存のリポジトリなら、必ずその全体を clone して、ファイルを一つ追加して、commit および push する必要があります。(push の際には実際に追加・変更したファイルの情報だけが送信されます。)
なお、履歴が多すぎて clone に時間がかかる場合は shallow clone という手法もあります。(が、少なくとも最新版のファイル一式を取得することにはなります。)
なにか日本語でのドキュメントや参考になるサイトはございますでしょうか?
Pro Git という本が無料で公開されてます。
https://progit-ja.github.io/
初心者向けとしては、読んだことはありませんが「サルでもわかるGit入門」というサイトがあるようです。
https://backlog.com/ja/git-tutorial/
git では、一つのファイル(または一部のディレクトリ)だけを push することはできません。既存のリポジトリなら、必ずその全体を clone して、ファイルを一つ追加して、commit および push する必要があります。(push の際には実際に追加・変更したファイルの情報だけが送信されます。)
上記より二つご質問です。
①その全体を clone
こちらは業務で同じリポジトリで作業を複数の人が行っている場合などで、実際に新規にそのリポジトリにファイルやフォルダを追記するときはたは、とえ量が膨大だとしても、git cloneを行い、pushを行うのでしょうか?
上記の解釈が正しければ、ファイルやフォルダをリモートリポジトリに新規にpushする際は誰も作業を行っていない時間にGUIから追加するほうがよろしいでしょうか?
②push の際には実際に追加・変更したファイルの情報だけが送信されます
こちらはgit commit したものだけがリモートリポジトリへpushされるため、
cloneよりは時間はかからないといった解釈でお間違いないでしょうか?
①継続してそのリポジトリに対して作業する場合、最初に一度 clone したら、次からは必要に応じてそれを最新の状態に更新するのですが、この場合も変更されたファイルだけを取ってくるので、clone より時間はかかりません。一時的にそのリポジトで作業する場合は、全体を clone することになりますね。
また、並行作業に関しては、git では各作業者が(作業内容ごとに)ブランチというものを作って作業して、ある程度作業がまとまった段階でマージすることになります。ブランチで作業している間は、他の作業者とは全く無関係に作業を行い、マージの際に他の作業者の成果とすり合わせることになります。
ブランチによる作業のイメージはこちらをどうぞ。
https://backlog.com/ja/git-tutorial/stepup/12/
②はい。
cloneも2回目以降は差分でcloneを行うので一番初めの時と比べれば早く対応できるといった形で承知しました。すいません、こちらでのご回答だとベストアンサーができないです。。。
お役に立てればそれで十分です。バージョン管理の中でも、特に git は概念が難しくて大変だと思いますが、頑張ってください。
回答1件
あなたの回答
tips
プレビュー