개요

 이번 포스팅에서는 github의 "PR"이라는 것에 대하여 알아보도록 하겠습니다. 'pr'이란 'pull&request'라는 것인데,  해당 소스(오픈소스)에 기여한 것이 있으니 작업 브랜치를 검토후 합쳐 주세요라는 뜻입니다. 관리자는 해당 request를 검토후 합치기 때문에 자연스럽게 코드리뷰로 이어지게 됩니다.


방법

 Pull Request는 아래와 같은 흐름으로 진행 됩니다. 다음 파트에서 각 부분마다 어떤식으로 진행되는지 알아보도록 하겠습니다.

  1.  fork
  2.  clone & remote 설정
  3.  branch 생성
  4.  git add, commit, push
  5.  pull request 생성
  6.  관리자 pull merge
  7.  소스코드 동기화

 

1. fork

 먼저, target (PR을 보낼) repository를 fork 하여 줍니다. ex) yhmane/solid-principles를 fork하여 줍니다.




fork를 하게 되면 자신의 계정에 해당 repository가 추가 되어집니다.


2. clone & remote 설정

다음으로 fork된 repository를 clone하여 줍니다.


# repository clone

git clone https://github.com/ghhhwa/solid-principles.git 


# 원본 url을 추가하여줍니다. yhmane-repo는 별칭입니다 

git remote add yhmane-repo https://github.com/yhmane/solid-principles.git 


# 원격 저장소 확인

git remote -v


3. 브랜치 생성

 다음으로, 작업할 브랜치를 생성하여 줍니다.

# 먼저 원격 저장소를 fetch 하여 줍니다.

git fetch yhmane-repo


# 다음으로 작업할 브랜치로 이동하여 주고, 그 브랜치를 기준으로 feature-srp 브랜치를 생성하여 주었습니다.

git checkout yhmane-repo/feature-srp

git checkout -b feature-srp


4. git add, commit, push


 작업을 진행하고 수정사항을 commit하여 push 합니다.

# 작업한 내용을 모두 add 하여 줍니다. '.' 은 모든 파일은 add 합니다.

git add .


# commit

git commit


# push

git push --set-upstream origin feature-srp


5. pull & request 생성

 push한 내역에 대해서 pull & request를 생성해 보겠습니다.

 해당 repository의 브랜치에 접속한 후, New pull request 버튼을 눌러줍니다.


 메세지를 작성 후, Create pull request 버튼을 눌러줍니다.


6. pr merge

  해당 repository의 관리자는 PR을 review하게 됩니다. 


   review 후, 이상이 없을 경우에는 merge를 진행하게 됩니다.




7. 코드 동기화

 target repository에는 해당 커밋이 올라가 최신으로 수정되었습니다. merge를 진행하게 되면서 auto-merge가 되는 경우도 있지만, conflict가 발생할 수도 있는데요, 이 부분은 관리자가 처리 후 merge 되게 됩니다. 그러면 fork한 repository에서도 해당 커밋을 pull 받아 최신화 시켜 줘야 합니다. 


# master로 브랜치 변경

git checkout master


# feature-srp 브랜치 삭제

git branch -d feature-srp


# fetch 및 동기화

git fetch yhmane-repo

git checkout yhmane-repo/feature-srp

git checkout -b feature-srp

git push --set-upstream origin feature-srp


3~7 번 반복




PR이 merge 된 후, verified(승인) 표시가 나오게 됩니다. 코드를 동기화한 후에는, fork한 repository에서도 씽크가 맞는 것을 확인 할 수 있습니다.

블로그 이미지

사용자 yhmane

댓글을 달아 주세요

Vue로 Blog 만들기


@ vs code

@ vue

@ component

@ vuex

@ router


반응형 디자인

무료 호스팅

mac os


여러 가지 고려한 끝에, github page를 이용하기로 결정하였습니다.

구글링 시작 


https://stackoverflow.com/questions/47615863/problems-deploying-to-github-pages-with-vue-project


알기 쉽게 정리 잘 되어 있어서 고대로 사용




  1. $ vue init webpack [projectName]
  2. $ cd [projectName]
  3. $ npm install
  4. go to your config/index.js file
  5. modify your build section like this:

    build: { index: path.resolve(__dirname, '../docs/index.html'), assetsRoot: path.resolve(__dirname, '../docs'), assetsSubDirectory: 'static', assetsPublicPath: '', productionSourceMap: true, devtool: '#source-map', productionGzip: false, productionGzipExtensions: ['js', 'css'], bundleAnalyzerReport: process.env.npm_config_report }

  6. $ npm run build

  7. push it to your github repository
  8. go to the setting in your repository
  9. find your GitHub Pages Section and change the source from 'master' -> 'master/docs'
  10. your page should be on 'https://[userName].github.io/[repositoryName]/#/'


vue init webpack vue-page

npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log

1번 부터 에러가 발생 ... 밑에 에러가 뜨는데 검색 해보니 own을 수정해주어야 설치가 가능하다고 함



ls -la /usr/local/lib/node_modules

이걸 치면 owner가 root로 되어 있는 것을 볼 수 있음

drwxr-xr-x   3 root    wheel  102 Jun 24 23:24 node_modules

이걸 바꿔  주면 됨


whoami


위에걸 치면 active user가 누구인지 알 수 있음



sudo chown -R [owner]: /usr/local/lib/node_modules

수정하면 잘 설치 됨

쭉쭉 수행하다가 5번 build script만 수정하여 줌


github repository 만들고 위 프로젝트 푸시하여줌


push후 자신이 만든 레포지토리에 세팅을 들어감




그 다음 Source를 master에서 docs로 수정


저장하면  'https://[userName].github.io/[repositoryName]/#/' 들어가서 호스팅 된 것을 확인할 수 있음



마지막으로, package.json 파일을 보면 "start": "npm run dev"를 확인할 수 있음.

terminal에서 다음 명령어를 치면 localhost:8080으로 접근할 수 있어 화면 확인이나 디버깅이 가능함



간략하게 보고 요약해서 정리하였으니,, 혹시 모를 누군가에게 도움이 되었으면 합니다.


이제 개발 시작!






'Front > Vue.js' 카테고리의 다른 글

vue github page 만들기  (0) 2019.05.07
Vue component  (0) 2019.04.23
Vue.js 시작하기  (0) 2019.04.15
블로그 이미지

사용자 yhmane

댓글을 달아 주세요

버전관리를 하며 Git을 많이 사용하는데요.


일을 하면서 필요한 명령어들을 정리하다가


git repository를 만들어 참고하고 있습니다.


https://github.com/yhmane/git#git


이정도만 안다면 ,,, 큰 무리없이 git을 사용할 수 있으리라 생각합니다.



git branch

  • You can use branch command when you want to see branch list. Below is branch command examples.
git branch                        ## shows local branch list
git branch -r                     ## shows remote branch list
git branch -a                     ## shows local and remote branch list 
git branch [new branch]           ## checkout new branch
  • If you want to delete local branch [example]
git checkout master
git branch -d example
  • And you also want to delete the branch from remote server. Then delete local branch and add one line.
git push origin :example

git push

  • You can upload your source files.
  1. Check your local branch which files are unstaged.
git status
  1. Then choose files and add.
git add example.html example2.html    ## this command adds files which you select
git add .                             ## this command adds all the files which are unstaged files
  1. Next, write the commit messages
git commit                       ## If you enter this command, then your cgi turns on commit write pages
git commit -m "[commit message]" ## You can write your command easily
  1. Finally push your commit
git push

Some push way

  • push local branch to remote branch
git push [remote server] [local branch]:[remote branch]
  • push local branch to same name remote branch
git push [remoete server] [local branch]

git pull

  • You pull sources from remoete server
git pull

git checkout

  • you can checkout another branch from current branch. If you have same branch names, you only checkout.
git checkout [branch]

git merge

  • merge with no commit
gir merge [branch]

git status

  • This command shows the current branch stage status.
git status
  • The current sources changed, and you don't want to push to server then enter this command. This command stores the current status to the stash stack.
git stash       ## store the current status
git stash list  ## Show all stash list
git stash apply ## This command applies the last git stash and the last git stash remains on stash list
git stash apply stash@{number} ## This command applies stash@{number}. Number is stash index from 0~
git stash pop   ## This command pop up the last git stash
git stash drop  ## This command drops stash@{0}
git stash drop stash@{number} ## This command drop stash@{number}. Number is stash index from 0~
git stash clear ## This command drops all stash stack.          

git commit

  • git commit

git cherry-pick

  • If you want to some commits not merged, and another commit needs merge.
git cherry-pick [commit-hash]

git log

  • This command shows commit log
git log
  • But, this command only shows commit-hash and date. So there is option -p. So you can shows the source code change.
git log -p
git log -p [commit-hash]  ## you cah shows from the commit-hash
git log --since="2018-11-01" --author="yhmane" ## shows the log since the day that commit user == author

git tag

  • This command shows release version
git tag ## shows the tagging version ex) v1.0 v1.1 ...
git tag -l v1.1.* ## find and show the version like v1.1.1 v1.1.2 ....
  • Add tag. There are two ways adding tag.
git tag v1.0 ## First way is Lightweight Tag. It only shows the version.
git tag -a v1.0 -m"Release version 1.0" ## Second way is Annotated Tag. It shows person, email, date, and messages
  • Push tag to remote repository
git push origin v1.0 ## only push v1.0
git push origin --tags ## if you want to push all tags, then use this command.
  • Delete tag
git tag -d v1.0 ## delete tag local branch.
git push origin :v1.0 ## delete tag from remote repository.

git clean

  • This command removes untracked files from the working tree
git clean [-d] [-f] [-i] [-n] [-q] [-e ] [-x | -X] [--] …​...
git clean -f ## removes untracked files
git clean -fd ## removes untracked directories and files

git blame

  • This command shows what revision and author last modified each line of a file
  • If you use this command with git diff command, you can get difference or errors more effectively
git blame [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
	    [-L ] [-S ] [-M] [-C] [-C] [-C] [--since=]
	    [--progress] [--abbrev=] [ | --contents  | --reverse ..]
	    [--] 
git blame [file] ## shows last commit msg&author of file from start to end
git blame -L 5,9 [file] ## shows last commit msg&author of file line 5~9

git rebase

  • This command reapplies commits on top of another base tip. But I don't recommend this command.

git rebase -i HEAD~    ## This command shows N~HEAD, N-1~HEAD ... , HEAD
                          ## Then you can choose pick, squash, reword, edit, fixup, exec, drop
                          pick = use commit
                          reword = use commit, but edit the commit message
                          edit = use commit, but stop for amending
                          squash = use commit, but meld into previous commit
                          fixup = like squash, but discard
                          exec = run command using shell
                          drop = remove commit
                          
if you choose the command, then rebase start.
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".

If you push commit remote server, then I never recommend rebase ...

Git Reference Guide




블로그 이미지

사용자 yhmane

댓글을 달아 주세요

우선, git을 아마존 리눅스에 설치 해보도록 하겠습니다.

git을 설치하는 이유는 저의 Github 계정에 올려둔 spring_sample 프로젝트를 서버에서 clone 받기 위해서입니다.

1
sudo yum install git
cs

위의 명령어를 이용하여 서버에 git을 설치하여 줍니다.

1
2
3
4
5
6
7
8
9
10
# creates local directory  
mkdir github_project
cd github_project
 
# init github_project directory
git init
 
 
# clone sample_springPJ
git clone https://github.com/yhmane/sample_springPJ.git
cs

git 설치가 완료 되었다면, project를 init할 디렉토리를 생성 하여 줍니다.

저의 경우에는 /home/ec2-user/github_project  ec2-user 밑에 디렉토리를 생성하였습니다.

디렉토리 생성 후, 디렉토리 초기화 후 clone을 받아줍니다.

(샘플 소스이니 마음껏 사용하셔도 됩니다)



다음 포스팅에선 프로젝트 배포를 위해

메이븐 -> war 파일 생성

mysql -> 필요한 테이블 생성

tomcat -> 파일 설정 -> 배포

순으로 포스팅하도록 하겠습니다.

블로그 이미지

사용자 yhmane

댓글을 달아 주세요