FC_Live) Git/Github 02
崔祐栄講師. README.md License .gitignore Branch Gitflow戦略
シナリオのリストア
シミュレーションチームプロジェクト
)が存在します.
Gitバージョン管理から除外するファイルのリストを指定するファイル.
したがって、ファイル作成後もlsは確認できません.
ls-aで確認できます.
主に開発環境でモジュールの過剰追跡を防止するために使用されます.
git statusで追跡するとき.gitignoreで定義されたファイルが追跡されていないことを確認できます.
https://www.toptal.com/developers/gitignore/
使用する開発環境を書き、無視するviコンテンツを生成します.
ブレークポイントを作成し、コードを独立して変更するモデルです.
別のブランチを移動すると、ファイルは存在しません.
使い切った支店はすぐに削除したほうがいい.
各ブランチがそれぞれの作業が完了した後にマージされるとしたら?
衝突したhellopyの内容を変更します.
まだ間に合いません
マージするにはコミットが必要です
mergeが成功すると、mergeプロンプトが表示されます.
羽章の立場から見ると.
ローカルmainからリモートmainにプッシュします.
リモートmainは中間分岐があったことを知らない.
中間分岐の事実を残すなら
別々に押します.
時々必要です.
git flow
(hotfix)- master -(release)- develop - feature
master、developという2つのコアブランチ
利点:最も多く適用され、各段階に明確な区別があります.
cons:よくチェックアウトしなければなりません.複雑です.
現在の使用頻度が高い
github flow
コアブランチ
主にディレクトリに直接パブリッシュするために使用されます
master - feature
利点:ブランチモデルを簡略化し、masterのすべてのコミットを展開
cons:CIに高度に依存します.誰かがミスをしたら...(pull requestの使用を避ける)
gitlab flow
production - pre-production - master - feature
利点:deploy、完璧な問題解決策
cons:gitストリームとは逆(メイン-開発、生産-メイン)
Feature branch(機能分岐)管理ポリシー.
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html
git flow推奨ツールを簡単に処理
MacOsは別途設定する必要があります.
gitストリームの起動
git flow init
git flow featureブランチの作成
git flow feature start branch_name
git flow featureブランチを閉じる
git flow feature finish branch_name
Git flow releaseの起動
git flow release start v0.1
Git flow release終了
git flow release finish v0.1
3つのcommitウィンドウ Merge branch 'release/v0.1'-マージ/保存後終了 はtag:-タグタグは-タグ/内容 Merge tag 'v0.1'to develop/保存後コンパス
ex) v0.1 -> v0.2
ex) v1.0 -> v2.0 バージョンは0.1から
小さな単位の修正で3桁の数が与えられます.
傘下の人にブランキーを認識させるためだ.
単独でプッシュする必要があります
https://leetcode.com/
https://www.hackerrank.com/
https://www.acmicpc.net/名前変更(Rename)
mv現在の名前の変更->deleteで副作用
git mv現在の名前変更
削除されました
コンテンツの変更をキャンセル(Undoing)
git restore helloworld.md
追加解除(Unstaging)
$ git reset HEAD helloworld.md
commitコンテンツを返す
まるで起こったことがないようだ.
git commit --amend
コミット解除(Reset)
git reset--ハードHEAD~n//現在の状態から前のn状態へのコミットをキャンセル
commitを完全に削除した後、リモートに強制的にプッシュします.
中間履歴が消え、コラボレーション時にcommit logを追跡するのは難しい.
使用を避ける.
戻りcommit(Revert)
git revert --no-commit HEAD~N..
リストアの原因はcommitで詳細に説明する必要があります
シナリオのリストア
シミュレーションチームプロジェクト
クローン作成
cd documents
cd dev
git clone https://github.com/oching-choi/branch-practice.git
cd branch-practice
ls -al
README.md
# Project Name
Abstract your project in few lines.
see [project sample page](project link)
## Documentation
### Installation
To install,
`$ pip install sesame`
and run `$ python open_sesame.py`
### Supported Python versions
`>=3.6`
### More Information
- [API docs]()
- [Official website]()
### Contributing
Please see [CONTRIBUTING.md]()
### License
Sesame is Free software, and may be redistributed under the terms of specified in the [LICENSE]() file.
License
MIT License
拘束、特許責任XApache License 2.0
特許出願OGNU General Public License v3.0
最も一般的な義務(ライセンスのソースコードを使用する場合GPLを使用))が存在します.
.gitignore
Gitバージョン管理から除外するファイルのリストを指定するファイル.
したがって、ファイル作成後もlsは確認できません.
ls-aで確認できます.
主に開発環境でモジュールの過剰追跡を防止するために使用されます.
# 주석을 달기 위한 Hashtag
# MacOS Setup
.DS_Store
# Python cache files
.py[cdo]
# Important files
/Important
# AWS key
key.pem
vi .itignore
vi환경)
# Custom
Keyfile.pem
crendentials/**
secrets.* //secret이 붙은 모든 확장자
*.java //.java확장자 모든 파일
vi환경 종료)
$ cat .gitignore //vi에서 쓴 내용 확인
git statusで追跡するとき.gitignoreで定義されたファイルが追跡されていないことを確認できます.
gitignore.io
https://www.toptal.com/developers/gitignore/
使用する開発環境を書き、無視するviコンテンツを生成します.
.git ignore commit하기
git add .gitignore
$ git status
$ git commit
vim환경)
제목 convertion : conf
branch
ブレークポイントを作成し、コードを独立して変更するモデルです.
git branch //존재하는 branch 확인
git branch print-hello //print-hello 라는 branch 생성
git branch //main ,print-hello 두개 확인됨
git checkout print-hello //git 이동
// 새버전에서 checkout대신 switch사용
touch hello.py
vi hello.py
vi환경)
print('hello')
vi환경에서 저장후 나오기)
cat hello.py //vi에 적은 내용확인
git status //추적상황 확인
git add hello.py //hello.py 추적 stage에 올리기
git status //추적상황 확인
git commit //commit하기
vi commit 환경)
제목
내용 적기
vi commit 환경 저장후 나옴)
ブランチによって作成されたファイルをコミットします.別のブランチを移動すると、ファイルは存在しません.
git switch main //main으로 전환
ls //hello.py가 없다
git switch print-helo //print-helo branch로 전환
ls //hello.py가 있음
branch merge
git switch main //main으로 이동
git branch //branch확인
git merge print-hello //합병
ブランチの削除
使い切った支店はすぐに削除したほうがいい.
$ git branch -D print-hello
conflict
各ブランチがそれぞれの作業が完了した後にマージされるとしたら?
hello.py에서 if문
vi hello.py
vi 환경)
magin_num = 3
if magin_num =3
print ('hello'):
vi 환경 종료)
$ git status
$ git add hello.py
$ git status
$ git commit
$ git switch repeat-hello //repeat-hello branch로 전환
vi hello.py
vi 환경)
for _ in range(1,10+1):
print ('hello'):
vi 환경 종료)
$ cat hello.py
$ git status
$ git add hello.py
$ git status
$ git commit
vi commit환경)
제목, 내용 적음
vi 환경 - 저장하고 나옴)
$ git switch main
git merge repeat-hello
이때 conflict발생 // repeat-hello 브랜치환경에서 수정이 발생했기때문
競合解決
衝突したhellopyの内容を変更します.
vi hello.py
vi환경)
for i in range(1,10+1):
if i%3==0:
print ('hello')
git status
まだ間に合いません
マージするにはコミットが必要です
git commit
mergeが成功すると、mergeプロンプトが表示されます.
羽章の立場から見ると.
ローカルmainからリモートmainにプッシュします.
リモートmainは中間分岐があったことを知らない.
中間分岐の事実を残すなら
別々に押します.
$ git switch repeat-hello
$ git push -u origin repeat-hello
//remote에 없는 branch를 푸쉬할 땐 -u을 붙여야한다.
すべてのブランチが記録のように押されるわけではありませんが.時々必要です.
ブランチモデル
git flow
(hotfix)- master -(release)- develop - feature
master、developという2つのコアブランチ
利点:最も多く適用され、各段階に明確な区別があります.
cons:よくチェックアウトしなければなりません.複雑です.
現在の使用頻度が高い
github flow
コアブランチ
主にディレクトリに直接パブリッシュするために使用されます
master - feature
利点:ブランチモデルを簡略化し、masterのすべてのコミットを展開
cons:CIに高度に依存します.誰かがミスをしたら...(pull requestの使用を避ける)
gitlab flow
production - pre-production - master - feature
利点:deploy、完璧な問題解決策
cons:gitストリームとは逆(メイン-開発、生産-メイン)
Gitflow strategy
Feature branch(機能分岐)管理ポリシー.
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html
git flow推奨ツールを簡単に処理
MacOsは別途設定する必要があります.
gitflow commend
gitストリームの起動
git flow init
git flow featureブランチの作成
git flow feature start branch_name
git flow featureブランチを閉じる
git flow feature finish branch_name
Git flow releaseの起動
git flow release start v0.1
Git flow release終了
git flow release finish v0.1
3つのcommitウィンドウ
$ git flow init
Which branch should be used for bringing forth production releases?
- main
Branch name for production releases: [main]
계속 enter로 prefix설치
$ git branch
// develop main 두개 확인됨
$ git flow feature start print-world
$ git branch
// develop feature/print-world main 이렇게 세개나옴
//내 현재 위치도 feature/print-world 브랜치에 와있음
vi hello.py //hello.py내용수정
vi환경)
for i in range(1,10+1):
if i%3==0:
print ('{} hello'.format(i))
elif i%5 ==0:
print('{} world' .format(i)):
vi환경끝)
cat hello.py
git status
git add hellow.py
git status
git commit
vi commit환경)
feat : 으로 제목
vi commit 환경끝)
$ git flow feature finish print-world
//finish하면 아래 내용 확인됨
Switched to branch 'develop'
Updating 9da7e50..3f414e7
Fast-forward
hello.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Deleted branch feature/print-world (was 3f414e7).
Summary of actions:
- The feature branch 'feature/print-world' was merged into 'develop'
- Feature branch 'feature/print-world' has been locally deleted
- You are now on branch 'develop'
//알아서 merge하고 deleted해준 것 까지 확인된다.
$ git flow release start v0.1
//릴리즈하기
Switched to a new branch 'release/v0.1'
Summary of actions:
- A new branch 'release/v0.1' was created, based on 'develop'
- You are now on branch 'release/v0.1'
Follow-up actions:
- Bump the version number now!
- Start committing last-minute fixes in preparing your release
- When done, run:
git flow release finish 'v0.1'
git flow release finish v0.1
//commit창이 두개가 열림
1. Merge branch 'release/v0.1' - merge하는거 / 저장후 나감
2. Write a message for tag: - 깃헙에서 확인되는 라벨링태깅 / 한 내용 적기
3.Merge tag 'v0.1' into develop / 저장 후 나감
バージョンコメント)
마이너체인지
新機能:後の数字上昇ex) v0.1 -> v0.2
메이저체인지
このバージョンにはない新しい機能:前の数字が上昇ex) v1.0 -> v2.0
小さな単位の修正で3桁の数が与えられます.
ブランチ明示的プッシュ
傘下の人にブランキーを認識させるためだ.
単独でプッシュする必要があります
$ git push -u origin develop //branch 첫 push는 -u
$ git push origin main
$ git tag
$ git --tags
アルゴリズム学習おすすめサイトhttps://leetcode.com/
https://www.hackerrank.com/
https://www.acmicpc.net/
mv現在の名前の変更->deleteで副作用
git mv現在の名前変更
현재위치 develop branch
mv README.md leadme.md
削除されました
$ git mv hello.py helloworld.md
git commit //이름만 바꾸는 경우라 add해주지않았음.
vi commit)
fix : Rename hello.pu to hellowoeld.py
vi commit 끝)
コンテンツの変更をキャンセル(Undoing)
git restore helloworld.md
追加解除(Unstaging)
$ git reset HEAD helloworld.md
commitコンテンツを返す
まるで起こったことがないようだ.
git commit --amend
コミット解除(Reset)
git reset--ハードHEAD~n//現在の状態から前のn状態へのコミットをキャンセル
commitを完全に削除した後、リモートに強制的にプッシュします.
中間履歴が消え、コラボレーション時にcommit logを追跡するのは難しい.
使用を避ける.
戻りcommit(Revert)
git revert --no-commit HEAD~N..
リストアの原因はcommitで詳細に説明する必要があります
シミュレーションgitflowポリシーチーム
팀장)
repository개설
git flow init //gitflow 시작
git branch develop //develop이라는 branch생성
touch 각팀원파일
git status
git add 파일명
git status
git commit
git push -u origin develop
팀원)
issue확인 (할일, 버그리포트)
issue작성 - 내가 뭘 할 지 미리 공유
##간단내용
##task list
-do fizz
-do buzz
-do fizzbuzz
원본 링크 fork(복사해서 내 repo로 가져오게 준비)
dev 경로에서 내게 할당된 fork clone
git flow init //gitflow 시작
ls //내가 작업할 파일 존재유무 확인
git flow feature start 파일명 //start
vi 파일명
vi환경에서 작업) //vi작업
git status
git add 파일명 //onstaging
git status
git commit //commit
git flow feature finish 파일명 //finish
git push -u origin develop
git remote add upstream 원본주소 //pull
git pull upstream develop
Reference
この問題について(FC_Live) Git/Github 02), 我々は、より多くの情報をここで見つけました https://velog.io/@oching/22-04-14-live-GitGithubテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol