オープンソーストレーニングの学習(Gitによるコラボレーション)
4234 ワード
前回の授業ではオープンソースの面接に合格し、最初のトレーニングを受けました.
githubをどのように使用してコラボレーションを行い、毎日4時間の計8時間のトレーニングを行い、主に個人プロジェクトに従事している私にとって、疎遠なコマンドがたくさんあります.もう一度復習するために、今度は文章を書きたいです.
個人プロジェクト
githubをどのように使用してコラボレーションを行い、毎日4時間の計8時間のトレーニングを行い、主に個人プロジェクトに従事している私にとって、疎遠なコマンドがたくさんあります.もう一度復習するために、今度は文章を書きたいです.
個人プロジェクト
個人種目の時.
git add
git commit-m「約」
git push origin master(or main)
上記の3行のみを使用してCOMMITを書き間違えた場合、ほとんどの場合無視して行われます.
しかし、オープンソースプロジェクトを行うと、上記のように殴られます.
ではgithubを使ってコラボレーションするにはどうすればいいのでしょうか.
commit!!
今までどうしてcommitを書くのか、勝手に書けばいいのではないでしょうか.このような考えでGithubにアップロードするのは、非常に間違った考え方です.commitには私のタスクに関するすべての情報が含まれているため、レビュー者やオペレータがmergeを行うと、私の提出を主として意思決定を行うことができ、他の開発者も私の提出を確認して操作することができます.そのため、commitを草で書くと、他の開発者にひどく殴られる可能性があります!
では、commitはどのように書きますか?
吟遊詩人と同じように、単語ごとに意味がある。
通常commitは1行の要約で書きます.そのため、すべての単語に意味があります.たとえば、commitを作成したとします.
README.mdファイル~~~
Uchan Lee(python) <- 추가
ファイルを追加すると...git commit -m "update"
上記のように提出してPushとPR(pull&request)をしたら?
レビュー担当者から見れば、どのようにファイルを修正したのか分からないかもしれません.そのため、私がレビュー者やオペレータであれば、私は絶対に合併しません.そこで、より具体的に説明できるように、以下のように修正します.git commit -m "Add UchanLee in README.md"
前述したように、commitの作成はコードを理解し、参照しやすい.
コミット管理
git log --oneline
次のようにwikermandを入力します.
コミットID、コミット内容
出力は以下のようになり、これによりcommit IDを特定することができる.オプションを追加してログを表示できます
たとえばgit log--oneline|wc-lと入力すると、ログの数が表示されます.
また,wc−lの代わりにhead−10を用いると,上から10個しか出力されない.
ここで重要なのは、上から最近の記録です.つまり、上にあるほど、最近の提出を意味します.したがって、古い順序でlogを表示したい場合は、以下のように入力できます.git log --oneline --reverse
ここでonelineオプションが気になるかもしれません.
onelineオプションをオフにすると、どのように出力されますか?
前述したように、commitを作成したユーザの情報と日付が出力されます.したがって、コミットに関する情報を使用して、誰が作成したかを知ることができます.コードのいくつかの行を見て疑問がある場合は、commitを追跡して作成者に尋ねることができます(非常に役に立つかもしれません).
commitの削除または変更
git reset--soft head~2をネットで検索して削除すればいいです.この点を分析すると、上から2つ削除し、ファイルを保持し、ソフトウェアではなくhardを入力すると、すべて削除するという意味です.ここで重要なのは上から削除することです.中間コミットレコードを削除したら?
rewind
巻き返しは、ある点を最近の記録とすることを意味する.どうしてこんなことを?前述したように、commitは、最近のレコードの周りで動作することができる.そのため、真ん中から直接近づくことはできません!!(Advancedスキルを使用していれば可能かもしれません).削除したいcommitポイントに戻り、削除します.
このようなロゴがあると仮定します.
こちらです.git rebase -i --root
打ってすぐ出てきた.
(ちなみにvim editorはdefaultだと思いますのでnanoなどを使う人とは違うかもしれません)
では、3番目のコミットセクションでは、pickをeditに置き換え、wq
衝突が起こったことを示すのは当然だ.コミットの削除中に前のファイルと競合したためです.git diffを打つともっと詳しくなります.
この状態で、README.mdを修復して新しいcommitを追加してpushにしたら?
これはよく遭遇するpushエラーです.これはもちろん起こります.commitを変更したためgit上のファイルとは異なり、競合が発生しました.これにより、以下のコマンドで強制的に実行できます.git push origin master -f
通常は-fオプションは推奨されません.これは、変更されたコードをプロジェクトにアップロードすると競合するためです.しかし、この過程で衝突は当然であり、アップロードするには-forceオプションを追加しなければならない.fを加えたからといって、決まっているかどうかは考えられない.
以上のように押すことに成功した.また、logは以下の変更を行いました.
この機能を使用すると、再構築を行い、競合が発生しない時点に戻ってファイルを変更できます.
ではcommitを修正する方法は次のとおりです.
過去の時点に戻る->コミットの削除と変更->rewind
つまり.
1.git rebase-i-rootを使用してポイントをeditに設定
2. git reset --soft HEAD~1
3.git commit-m「修正」
4. git rebase --continue
上記のように、修正されたものが見えます.dropやrewordなどは以下の方法で使用できますが、これは省略します.
貢献のために
上ではずっとCOMMITについて話しているので、COMMITの重要性を強調したいと思います.commitは私の作業コードを表すので、これらのコードを慎重に作成し、修正しなければなりません.またopensourceでは多くの人が働いているので、私がしたことと誰かがしたことが衝突する可能性があります.したがって、rebaseコマンドを使用して競合しない時点を返すスキルも必要です.
PRしていたのに他の人のコードを統合していたら、私のコードは統合できないかもしれません.この時はRebaseでこの点を解決します!
Reference
この問題について(オープンソーストレーニングの学習(Gitによるコラボレーション)), 我々は、より多くの情報をここで見つけました
https://velog.io/@youngjun0627/오픈소스-교육-복습협업을-위한-git-사용법
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
今までどうしてcommitを書くのか、勝手に書けばいいのではないでしょうか.このような考えでGithubにアップロードするのは、非常に間違った考え方です.commitには私のタスクに関するすべての情報が含まれているため、レビュー者やオペレータがmergeを行うと、私の提出を主として意思決定を行うことができ、他の開発者も私の提出を確認して操作することができます.そのため、commitを草で書くと、他の開発者にひどく殴られる可能性があります!
では、commitはどのように書きますか?
吟遊詩人と同じように、単語ごとに意味がある。
通常commitは1行の要約で書きます.そのため、すべての単語に意味があります.たとえば、commitを作成したとします.
README.mdファイル
~~~
Uchan Lee(python) <- 추가
ファイルを追加すると...git commit -m "update"
上記のように提出してPushとPR(pull&request)をしたら?レビュー担当者から見れば、どのようにファイルを修正したのか分からないかもしれません.そのため、私がレビュー者やオペレータであれば、私は絶対に合併しません.そこで、より具体的に説明できるように、以下のように修正します.
git commit -m "Add UchanLee in README.md"
前述したように、commitの作成はコードを理解し、参照しやすい.コミット管理
git log --oneline
次のようにwikermandを入力します.コミットID、コミット内容
出力は以下のようになり、これによりcommit IDを特定することができる.オプションを追加してログを表示できます
たとえばgit log--oneline|wc-lと入力すると、ログの数が表示されます.
また,wc−lの代わりにhead−10を用いると,上から10個しか出力されない.
ここで重要なのは、上から最近の記録です.つまり、上にあるほど、最近の提出を意味します.したがって、古い順序でlogを表示したい場合は、以下のように入力できます.
git log --oneline --reverse
ここでonelineオプションが気になるかもしれません.onelineオプションをオフにすると、どのように出力されますか?
前述したように、commitを作成したユーザの情報と日付が出力されます.したがって、コミットに関する情報を使用して、誰が作成したかを知ることができます.コードのいくつかの行を見て疑問がある場合は、commitを追跡して作成者に尋ねることができます(非常に役に立つかもしれません).
commitの削除または変更
git reset--soft head~2をネットで検索して削除すればいいです.この点を分析すると、上から2つ削除し、ファイルを保持し、ソフトウェアではなくhardを入力すると、すべて削除するという意味です.ここで重要なのは上から削除することです.中間コミットレコードを削除したら?
rewind
巻き返しは、ある点を最近の記録とすることを意味する.どうしてこんなことを?前述したように、commitは、最近のレコードの周りで動作することができる.そのため、真ん中から直接近づくことはできません!!(Advancedスキルを使用していれば可能かもしれません).削除したいcommitポイントに戻り、削除します.
このようなロゴがあると仮定します.
こちらです.
git rebase -i --root
打ってすぐ出てきた.(ちなみにvim editorはdefaultだと思いますのでnanoなどを使う人とは違うかもしれません)
では、3番目のコミットセクションでは、pickをeditに置き換え、wq
衝突が起こったことを示すのは当然だ.コミットの削除中に前のファイルと競合したためです.git diffを打つともっと詳しくなります.
この状態で、README.mdを修復して新しいcommitを追加してpushにしたら?
これはよく遭遇するpushエラーです.これはもちろん起こります.commitを変更したためgit上のファイルとは異なり、競合が発生しました.これにより、以下のコマンドで強制的に実行できます.
git push origin master -f
通常は-fオプションは推奨されません.これは、変更されたコードをプロジェクトにアップロードすると競合するためです.しかし、この過程で衝突は当然であり、アップロードするには-forceオプションを追加しなければならない.fを加えたからといって、決まっているかどうかは考えられない.以上のように押すことに成功した.また、logは以下の変更を行いました.
この機能を使用すると、再構築を行い、競合が発生しない時点に戻ってファイルを変更できます.
ではcommitを修正する方法は次のとおりです.
過去の時点に戻る->コミットの削除と変更->rewind
つまり.
1.git rebase-i-rootを使用してポイントをeditに設定
2. git reset --soft HEAD~1
3.git commit-m「修正」
4. git rebase --continue
上記のように、修正されたものが見えます.dropやrewordなどは以下の方法で使用できますが、これは省略します.
貢献のために
上ではずっとCOMMITについて話しているので、COMMITの重要性を強調したいと思います.commitは私の作業コードを表すので、これらのコードを慎重に作成し、修正しなければなりません.またopensourceでは多くの人が働いているので、私がしたことと誰かがしたことが衝突する可能性があります.したがって、rebaseコマンドを使用して競合しない時点を返すスキルも必要です.
PRしていたのに他の人のコードを統合していたら、私のコードは統合できないかもしれません.この時はRebaseでこの点を解決します!
Reference
この問題について(オープンソーストレーニングの学習(Gitによるコラボレーション)), 我々は、より多くの情報をここで見つけました https://velog.io/@youngjun0627/오픈소스-교육-복습협업을-위한-git-사용법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol