< linux command 환경 >
1.1 git 환경 설정
a. git config --global user.name "my name" : user name 설정
b. git config --global user.email "my email" : user email 설정
c. vim ~/.bashrc
git config --global core.gitproxy '/root/env/git_proxy.sh' : git 외부 proxy 설정 (git_proxy.sh는 첨부의 파일 참조)
1.2 code 수정 후 반영 sequence
a. git pull : 코드 최신으로 sync받기
b. git status : 코드 수정 후 수정 사항 확인하기
modify 된 파일들이 기본적으로 update 상태로 나타납니다.
d. git add -i . : 새로 추가할 파일이 있는 경우 추가하기
staged unstaged path
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
c. git commit -s -m "s5pc110:model_name: comment" : 코드 수정 사항에 대한 comment 하기
e. git status : 최종 반영 사항 확인
f. git push : 코드 반영
1.3 반영된 code revert 방법
a. git revert commitnumver : web에서 commit number를 copy후 해당 명령을 사용하면 revert 완료.
1.4 특정 시점으로 code sync 하기
a. git reset --hard commitnumver : commitnumver로 code가 sync.
1.5 코드 반영중 error 발생할 경우 해결책
a. git reset --hard commitnum : 최종 반영된 commitnum으로 코드를 sync
b. 이후 1.1 다시 수행
a. git stash : 1.2의 f 스탭 직전에 해당 명령을 수행
b. git pull : 코드를 최신으로 sync
c. git stash apply : 최신코드에 반영할 사항을 적용
d. git push : 코드 반영
<< Error 1 >> git push 명령후 다음과 같은 에러 메시지를 받은 경우
! [rejected] master -> master (non-fast forward)
1. 원인 : 현재 작업하고 있는 Repository가 서버에 있는 Repository보다 오래된 내용이다. Push 를 하게 되면 서버에 있는 최신 내용은 날라가고 현재 작업한 내용만 적용이 되는 문제가 발생할 수 있기 때문에 에러가 발생하게 된것이다.
2. 해결방법
1) 강제 삽입하기 (추천하지 않음) : git push --force
2) 최신내용을 Local에 적용한 후 올리기 : git pull 명령을 이용하면 기존 작업한
내용에 최신 내용을 덧붙이게 된다. 만약 덧붙이는 과정에서 conflict가 발생한
경우, 그 안에 어느 부분이 conflict가 발생했는지가 나오기 때문에 잘 확인해
서 소스를 수정한 후 다시 올리면 된다.
'Programming > General' 카테고리의 다른 글
shift 연산자(>>)를 이용한 곱셈과 나눗셈 (0) | 2010.10.20 |
---|---|
nand flash - ftl(last, ECC, FSOC) (1) | 2010.09.28 |
Trace32 - break point 에서 원하는 변수면 area 에 출력하기 (0) | 2010.03.23 |
메모리 번지로 사이즈 계산하기 (0) | 2010.03.15 |
device driver check list (using I2C) (0) | 2010.03.08 |