이번에는 로컬저장소와 원격저장소간의 명령어를 정리해봤다.


원격 저장소의 모든 내용을 로컬저장소로 저장

git clone


로컬 저장소를 특정 원격 저장소와 연결

git remote


로컬 저장소의 내용을 보내거나 로컬저장소의 변경사항을 원격저장소로 보냄

git push


충돌일어났을때 충돌해결

git fetch


최신내용을 로컬 저장소로 보냄 

->pull로 받아오는것 보다 fetch로 받아오는걸 추천 pull로가져오면 자동 merge를 시행한다.

git pull


모든 브랜치를 push

git push orgin -all


현재 로컬저장소 상태확인

git remote -v



다음번에는 이클립스에서 git사용법에 대해 정리해 볼거다.

나만 볼거니까 나만 알아보게 씀

나는 전 회사에서 SVN만 썼고, Git는 써보지 않았다.

이직한 회사에서 Git를 썼고, '만들면서 배우는 Git GitHub입문'이라는 책 한권을 정독했다.

SVN과 다른점은 SVN은 바로 서버에 커밋과 업데이트를 하는 반면,

Git는 로컬 컴퓨터에 커밋과 업데이트를 한 뒤, 그 파일을 서버에 올리는 방식이다.

뭐 아닐수도있는데 내가 이해한 내용은 그렇다.


여튼 처음에는 Git 기본명령어에 대해 공부했다.

추후에 안 사실이지만 이클립스에서 Git를 쓸땐 명령어를 몰라도 된다.

하지만 난 몰랐으니까 명령어에 대해서 공부했다 ㅡㅡ;


로컬에서는 Git bash라는 프로그램을 쓴다. 이 툴은 기존회사에서 Laravel 프레임워크를 사용한 프로젝트에서 사용해봤다.


이름, 이메일 Setting 

git config --global user.name "이름"

git config --global user.email "이메일"


저장소 생성 

git init


저장소에 파일추가

git add 파일이름


커밋

git commit 

(커밋 후에는 git status를 통해 상태를 확인해야 함.)


상태확인

git status


메세지 작성 후 

ESC키 :wg 입력


어떠한 branch가 있는지 확인

git branch


해당 이름으로 branch 생성

git branch 이름


해당 브런치로 이동

git checkout 이름 


branch 생성과 동시에 checkout

git checkout -b 이름


변경사항 모두 커밋

git commit -a


vim을 사용하지 않고 커밋메세지 남기기(vim사용권장)

git commit -m "커밋메세지"

git commit -am "커밋메세지"   --변경사항 모두 커밋 후 메세지


merge

git merge branch이름


실제 변경 log확인

git log -p

git log --relative -date


브랜치 분기와 병합내용을 아스키 그래프로 보여줌(이거 자주쓸듯)

git log --graph


이거 쓰다보니까 생각난건데 SVN에서는 처음 소스를 다 내려받을때 check out이라는 용어를 썼는데

Git에선 branch이동 후 해당 소스로 변경(?)하는걸 check out이라 한다.

처음 소스를 다 내려받는건 clone이라고 한다.


여튼 로컬에 branch에 저장 할 명령어는 위와 같이 쓴다.

다음엔 원격서버에 올리는 명령어를 정리해 봐야겠다.


 

 

동그라미 ,사각형 일땐 빨간색 파란색 선택가능

 

직선을 선택하면 색선택이 통제된다.

어떻게 하는 것일까?

 

 

먼저 메뉴를 선택뒤 MenuActivate 이벤트를 선택해준다.

소스는 아래와같다.

        private void menuStrip1_MenuActivate(object sender, EventArgs e)//메뉴 툭떨어질때 발생
        {
           
            동그라미ToolStripMenuItem.Checked = (shape == 1); 

/*shape==1이면 true값이 반환되여 동그라미ToolStripMenuItem.Checked =true

이면 동그라미에 체크된다.

ToolStripMenuItem.Checked =false이면 non체크*/
            사각형ToolStripMenuItem.Checked = (shape == 2);//shape==2이면 true로 동그라미에 체크된다.
            직선ToolStripMenuItem.Checked = (shape == 3);//shape==3이면 true로 동그라미에 체크된다.

            빨간색ToolStripMenuItem.Checked = (color == Color.Red);
            파란색ToolStripMenuItem.Checked = (color == Color.Blue);

            빨간색ToolStripMenuItem.Enabled = (shape != 3);

/* shape 가 3 (직선)이 아니면 true값 반환으로

 빨간색ToolStripMenuItem.Enabled =true가되어 통제

shape 가 3 (직선)이 이면 false값 반환으로

빨간색ToolStripMenuItem.Enabled =false가되어 통제가 안된다

*/

 

 

            파란색ToolStripMenuItem.Enabled = (shape != 3);
        
        }

 

 

위 프로젝트의 전체소스는 파일로 첨부해 두겠다.

MenuItemState (2).zip

+ Recent posts