'프로그래밍 공부'에 해당되는 글 5건

Git OS별 설치 방법


Windows

https://git-scm.com/downloads 이곳 에서 Windows 버전을 다운받아서 설치하면된다. 몇가지 설정이 있으나 Next만 눌러도 된다.

중요한건  PATH 설정을 잘 선택 해줘야한다. 

가운데 선택시 Window cmd창에서만 동작하고 3번째를 선택하면 윈도우에서 리눅스 모드처럼 사용할수있는 bash와 cmd를 모두지원한다.


Linux

눅스에서 패키지로 Git을 설치할 때에는 보통 각 배포판에서 사용하는 패키지 관리도구를 사용하여 설치한다. Fedora에서는 아래와 같이 한다:


블로그 이미지

Forest of Lion

,

.gitignore 파일설정법

Git 2017. 3. 13. 16:59

Git 으로 프로젝트를 관리한다고 했을 때, 그 프로젝트안의 특정파일들은 Git 으로 관리할 필요없는 것들도 있다. 자동으로 생성되는 로그파일들, 빌드할 때 생기는 컴파일된 파일들(자바프로젝트에서는 *.class 파일)이 그런 경우가 아닐까. 그런 파일들은 git status 를 조회할 때마다 항상 untracked 되어있거나 modified 되어있어서 진짜 필요한 정보들을 보기 힘들어질 수 있다. 어쨋든 이런 파일들을 git 시스템에서 무시해서 없는 파일처럼 만들 수 있다.


우선 아래 예제를 보면 .log 파일들이 있다. 



이 로그 파일들은 아직 add 되지도 않았기 때문에 아직 untracked 상태이다. 하지만 난 이 파일들을 add 하고 싶은 생각이 없으며 앞으로도 .log 확장자를 가진 파일을 Git 에서 관리하고 싶지 않다. 



.gitignore 파일을 만들자


.gitignore 파일안에 앞으로 무시할 파일들의 패턴을 입력하기만 하면 git status, git add, git commit .... 모든 명령어에서 그 파일들은 제외가 된다. 그냥 해당폴더에 .gitignore 파일을 생성하자.

1
$ vim .gitignore



아 간단하다. 단 한줄만 입력하고 저장한다. 윈도우에서하면 걍 메모장에 입력해서 저장하면 된다.

다시 git status 입력해보자.



.log 파일들은 없어지고 .gitignore 파일만 인식하고 있다. 성공이다. .gitignore 파일을 global 영역에 통합으로 설정하는 것보다는 레파지토리마다 프로젝트 성격이 다르고 언어도 다를 것이므로 무시할 파일들도 종류가 다를 것이므로 각 레파지토리 폴더 안에 정의해서 사용하는 게 좋지 않을까 하는게 개인적인 생각이다. 

1
2
3
4
5
6
# a comment - this is ignored
*.a       # no .a files
!lib.a    # but do track lib.a, even though you're ignoring .a files above
/TODO     # only ignore the root TODO file, not subdir/TODO
build/    # ignore all files in the build/ directory
doc/*.txt # ignore doc/notes.txt, but not doc/server/arch.txt

gitignore 파일에서 사용하는 패턴들은 위와 같으며, 여기를 클릭해서 더 자세히 알아보면 좋다.


또한 이 사이트에 가보면 검색으로 ignore 할 파일들 금방 알려준다. https://www.gitignore.io/ 

'Git' 카테고리의 다른 글

Git Server 구축  (0) 2017.03.13
Git CLI 기본 명령어  (0) 2017.03.13
블로그 이미지

Forest of Lion

,

Git Server 구축

Git 2017. 3. 13. 16:06

Git Server 구축하기(Centos 7기준)


준비하기

Git 설치 하기

sudo yum install git

sudo yum install git-core


git 서버를 사용할 각 팀을 위한 계정을 추가

sudo useradd -d /home/1_team 1_teamcmd


추가후 비밀번호 설정

sudo passwd 1_team


권한설정

chmod 755 /home/1_team




추가한 아이디 1_team 으로 로그인 하고

su -l 1_team


디레터리 위치확인

pwd

/home/1_team


그후 git 저장소를 생성한다.(저장소를 생성할 디렉터리를 생성한것 아직 생성안함)

이름은 관례에따라 .git로 생성한다.

mkdir 1_TEMA_PROJECT.git

cd 1_TEAME_PROJECT.git/


그후 1_TEAM_PROJECT.git 내부에 git --bare init 명령어로 git 저장소 생성

git --bare init


그러면 1_TEAM_PROJECT.git 내부에 HEAD , config, hooks, info , refs 등 디렉터리및 파일이 생성된것을 확인할수 있음

ls -al 명령어로 확인가능


클라이언트에서(사용자)


test를 위해 ch_user라는 계정을 만들고 로그인

sudo adduser ch_user

sudo passwd ch_user


사용자가 git과 통신하기 위한 프로토콜은 여러가지가 있다.

git/ssh/http/https/local 프로토콜등이 있다. 


여기서는 ssh를 사용하겠다.


서버에 계정을 만들어서 권한이 필요한 사용자의 SSH 공개키를 모두 모아서 git 계정(1_team)의 ~/.ssh/authorized_keys 디렉터리에 모든키를 입력한다. 그러면 모두git 계정으로 그 서버에 접속할수 있다. git 계정은 서버에 접속할 수단일뿐, 사용자들이 데이터를 커밋한느데는 아무런 영향을 주지 않는다.


SSH공개키 만들기

기본적으로 사용자의 ~/.ssh에 존재한다.

없을땐는 만들어주자.

mkdir .ssh


그후 ssh-keygen 이라는 프로그램으로 공개키와 프라이베이트 키를 만들어야한다.

ssh-keygen -t rsa라고 입력하면 3번의 질문과정을 거친뒤 키를 생성해준다. 

1.파일명을 바꿀것인가?

2.키 사용시 비밀번호를 무엇으로 설정할것인가

3.비밀번호 한번더


위 과정을 마치게되면 id_rsa 파일과 id_rsa.pub 파일이 생성된것을 확인할수 있을것이다.

id_rsa 파일은 프라이베이트 키 이고 id_rsa.pub 파일은 공개키 파일이다. 


이제 생성한 공개키 파일을 git server에 전달해주면 된다.

Git Server 계정인 1_team으로 들어가서 여기도 마찬가지로 .ssh디렉터리를 생성해주자

mkdir .ssh

chmod 700 ~/.ssh (chmod ~ 권한관련 잘모르겠다.....)


그런다음에 ch_user 에서 생성한 id_rsa.pub(공개키)를 scp를 이용해서 1_team(Git  Server계정)에 전달해준다.(이메일로 보내서 서버에서 받아서 넣어도 상관이없다 전달만해주면됨)

scp id_rsa.pub 1_team@192.168.~~~:/home/1_team/


다시 서버에서 받은파일을 확인한다.

ls -al

그러면 id_rsa.pub이 있는걸 볼수 있을것이다. 

전송받은 파일을 cat명령어를 통해서 .ssh/autorized_keys로 전달한다.

cat id_rsa.pub >> .ssh/authorized_keys

source ~/.bashrc (잘모르겠다...)


이제 다시 클라이언트에서 clone을 통해 1_TEAM_PROJECT.git을 잘 받아오는지 확인하면 끝.


그리고 서버에서 다른 사용자가  ssh를 통해 서버 bash shell에 접근하지 못하도록 막아준다. (  git만 사용하고 다른 것은 건드리지 못하도록 )

<변경 전>

<변경 후>



클라이언트에서 ssh를 통해 접근해도 실패하게 된다.





클라이언트에서 프로젝트 안에 새로운 파일을 만들고 commit까지 해보는 과정.



 사용자의 email과 name을 설정 해줘야야 함.


commit완료

'Git' 카테고리의 다른 글

.gitignore 파일설정법  (0) 2017.03.13
Git CLI 기본 명령어  (0) 2017.03.13
블로그 이미지

Forest of Lion

,

Git CLI 기본 명령어

Git 2017. 3. 13. 10:14

git init : 프로젝트 폴더 생성후 폴더안에서 git init 명령어 사용시 새로운                 git 저장소가 생성됩니다.

git clone : 저장소 복제해서 받아오는 명령어 입니다.

사용법 :  로컬에 저장소가 있는경우 세로 생성한 프로젝트 폴더에서 git clone 로컬/저장소/경로 입력시 복제됩니다.

 원격 서버의 저장소를 복제하려면 

git clone 사용자명@호스트(ip):/원격/저장소/경로 를 입력하면됩니다.


git add <파일 이름> :  로컬에 생성한 저장소나 원격저장소에서 복제한 저장소에 소스를 추가합니다.

(git add * : 모든 파일 추가)

git commit -m "이번 확정본에 대한 설명" : git commit 명령어를 사용하면 git add 로 추가된 사항이 확정됩니다. 하지만 원격저장소에는 반영이 되지 않습니다.


git push origin master : 자신의 저장소에서 git commit 명령어로 확정된 내용을 원격 서버 저장소로 올리는 명령어 입니다.

기존에 있던 원격저장소를 복제한것이 아니라 새로운 원격 저장소에 자신의 소스를 반영하기 위해서는 다른 명령어가 필요합니다.


git remote add origin <원격 서버 주소> : 이 명령어를 사용해서 자신의 원격 서버 저장소를 알려주고 내용을 반영할수 있습니다.


git pull : 자신의 로컬 저장소를 원격 서버 저장소에 마추어 갱신해줍니다.


git merge <가지 이름> : 다른 가지에 있는 내용을 master 가지에 병합 해 줍니다. 


참고


'Git' 카테고리의 다른 글

.gitignore 파일설정법  (0) 2017.03.13
Git Server 구축  (0) 2017.03.13
블로그 이미지

Forest of Lion

,

1.checked 여부 확인

[1] $("intput:checkbox[id='ID]").is(":checked") == true : false;

[2] $("input:checkbox[name='NAME']").is(":checked") == true : false


2. checked/unchecked 처리

[1] $("input:checkbox[id='ID']").prop("checked",true);//true(chek처리)

[2] $("input:checkbox[name='NAME']").prop("checked",false);//false(uncheck처리)


3. 특정 라디오버튼 선택 / 모든라디오버튼 선택해제

[1] $("input:radio[name='NAME']:radio[value='VALUE']").attr("checke",true);

[2] $("input:radio[name='NAME']").removeAttr("checked");

 

4. 선택된 라디오버튼 객체/값 가져오기

 

var fruitValue = $("input:radio[name='fruit']:checked).val();

 

 

 

전체선택 체크박스를 선택하면 그 아래의 모든 체크박스를 선택해주는 것을 만들어보자

Html 부분


<label><input type='checkbox' id='check_all' class='input_check' /><b>전체선택</b></label>

<ul class='select_subject'>

<label><input type='checkbox' class='input_check' name='class[1]' value='1'/><b>1</b></label>

<label><input type='checkbox' class='input_check' name='class[2]' value='2'/><b>1</b></label>

</ul>




Javascript 부분


$(function(){

$("#check_all").click(function(){

var chk = $(this).is(":checked");

if(chk) $(".select_subject input").prop('checked',true);

esle $(".select_subject input").prop('checked', false);

});

});

블로그 이미지

Forest of Lion

,