본문 바로가기

VC & DEV TOOLS

(8)
[Git] master(default)브랜치에 다른 브랜치 덮어쓰기 진행하던 프로젝트의 master(defalut) 브랜치가 어느시점부터 관리가 안되었는지 2년전 즈음으로 머물러 있었고, 현재 시점에서 수작업으로 액티브 브랜치를 merge 하기에는 필요 이상의 공수가 들 참이었다. 그러는 중에 좋은 솔루션을 Stack Overflow에서 발견했고, 이를 통해 master 브랜치를 갈아 엎는데 성공했다. 순서는 아래와 같으며 터미널 및 git bash를 활용할 때 입력하는 명령어들을 기준으로 한다. 1. 현재 master가 remote의 최신 버전과 동기화되도록 세팅 2. 덮어쓰고자 가져올 branch(feature)를 checkout 3. git merge --strategy=ours master 입력 4. git checkout master 입력 5. git merge..
[GIT] 새 컴퓨터에서 GIT을 사용할 때 Github을 쓰던 기존 유저임을 증명하기 말이 좀 어렵게 되기는 하였는데, 상황으로 설명하자면 사용자가 새 컴퓨터를 샀고, 사용하던 레퍼지토리를 clone하여 쓰다가 변경사항을 브랜치에 push하였을 때, 별도의 인증절차가 없었다면 그 push가 본인이 한 것임에도 불구하고 github 계정과 다른 누군가로써 commit이 수행된 것을 볼 수 있을 것이다. 과거의 commit까지는 모르겠지만, 앞으로 이 새 컴퓨터에서의 commit및 push를 기존에 쓰던 github 계정의 push 기록으로써 남기고 싶다면 아래의 절차를 진행하자. (github 레퍼지토리가 private라면 아래 절차가 더욱 필수이어야 할 지도 모르겠다.) 아래는 맥북의 터미널에서 사용한 방식이고, 이는 윈도우에서도 git bash 창을 사용해 동일하게 진행이 가능하다. 1..
[GIT] 비공개 repository와 터미널로 clone하기 새로운 맥북에 기존에 작업하던 안드로이드 프로젝트 저장소를 clone해 당겨오고자 했는데 clone하는 단계에서부터 repository not found라는 메세지와 함께 진행이 되지 않고 있었다. (비공개 레퍼지토리이기 때문에 찾지 못했다는 메세지가 나오는 것으로 보임.) 내가 찾아낸 해결 방법은 git clone하는 주소에 사용자 이름과 비밀번호를 적어 날리는 방안이었다. 기존 형태가 git clone https://github.com/저장소를판유저이름/저장소이름 이었다면 비공개 레퍼지토리를 clone할때는 git clone https://사용자의NAME:비밀번호@github.com/저장소를판유저이름/저장소이름 으로 바꾸어 clone을 하면 본래대로 cloning이 가능하다. 여기서 사용자의 NAME..
[GIT] 이전 commit으로 돌아가 리모트 저장소에 최신 commit으로 올리기 한참 개발을 진행하다가 이전 commit이 현재 버전보다 더 나을때, 오류가 없을때, 어떠하든간에 과거 commit으로 돌아가고 싶었을 때 방법을 잘 몰라 과거 commit으로 돌아가기만 하고 결국에 리모트 저장소에는 업데이트 할 수 없는, 그리곤 브랜치를 새로 만들어 업데이트 했던 번거로운 방법을 사용했었는데, 이번에 아주 유용한 명령어를 찾았다. -f 명령어를 기존 push 명령어에 붙여줌으로써 이전 commit을 강제로 리모트 저장소에 push 하게 만드는 것이다. 우선 이전 commit으로 로컬 저장소를 되돌리고, 이를 add해서 push 해주어야 하는데 아래의 순서대로 진행하면 된다. git checkout 업데이트 하고싶은 가장 최근의 리모트 브랜치 git revert 돌아가고 싶은 commi..
[GIT] GIT 사용중 프로젝트에 불필요한 파일을 제외하기 프로젝트 개발을 하면서 몇몇 프로젝트에서는 빌드 이후에 자동으로 생성하는 몇몇 파일들, 즉 업로드 및 다운로드가 필요치 않은 임시파일 성격의 파일들이 생기고 GIT에 감지되는 것을 볼 수 있었다. 이게 브랜치를 여러개 두고 작업하다보면 항상 add해서 stash 하거나 업로드 하는등의 작업을 해주어야만 다른 브랜치로 띄어넘을 수 있어 상당한 귀찮음을 불러올 수 있다. 최근에는 안드로이드 개발중에 생기는 .idea/workspace.xml 파일이 계속 git에 걸려 checkout -- . 명령어를 수행하고서도 사라지지 않아 부득이하게 add하고 stash를 계속해주고 있었는데, 이번에 임계점이 와서 해결방법을 좀 찾아보았다. 참조한 방법은 아래와 같다.down voteIn the same dir wher..
[GIT] 이전 commit으로 돌아가 수정작업을 하고 리모트 저장소에 최신 commit으로 올리기 프로젝트 작업을 git을 통해 계속해오다 어디서 뭐가 어긋났는지 되돌리기 버거운 일들이 발생했다. 이를 위해 그동안 수행한 커밋 중에서 기능들이 원활히 돌아가던 커밋을 찾아 코드를 되돌리고, 이 코드를 바탕으로 다시 개발을 진행한 뒤 이를 최근 커밋으로 리모트 저장소에 올리고자 하였다. 서치를 좀 해보니까 commit을 직접적으로 최신 commit으로 바로 올려버리는 건 쉽지 않고, 이전 커밋으로 되돌아간 뒤 이를 최신 master와 merge해 최신화하는 방법을 통해 이전 커밋을 바탕으로 한 프로젝트 코드를 최신으로 한 새 commit을 push 할 수 있었다. 1. git reset --hard 커밋코드 이 명령어를 통해 현재 수행하고 있는 프로젝트 전체를 커밋코드에 해당하는 프로젝트 내용으로 되돌린..
[GIT] 생성한 git repository에 프로젝트를 업로드하자 새로 프로젝트를 git에 올리기 위해 push니 pull이니 commit이니를 반복하다 커밋이 겹치기라도 했는지 제대로 업로드가 되지 않았다. 내가 저지른 시행착오는 첫째, git과 연결하고자 하는 폴더를 연결만 한 채, pull 작업을 통해 먼저 git 리모트 저장소와 동기화하지 않고, 추가하고자 하는 프로젝트들을 옮겨 add하고 push하려 한 것이다. 결과는 말짱 꽝이었다. 그리고나서 다음날 집에서 문득 생각했던 원인, 즉 리모트 저장소와 동기화를 하지 않고 업로드 하려 했던 것을 생각하고 과정을 진행하니 원활하게 프로젝트를 업로드 해낼 수 있었다. 아주 간단하지만 아주 중요한, 괜히 쓸데없이 버벅대고 싶지 않다면 명심해야 할 사안이다. 1. git과 동기화하고자 하는 폴더 하나를 생성한다. 2. ..
윈도우10에서 CMD를 통해 젠킨스, SonarQube 실행하기 1. CMD창 관리자 권한으로 실행. 2. Jenkins가 설치된 폴더로 cd 명령어로 이동 3. java -jar jenkins.war 입력 4. localhost:8080으로 이동 해당 과정중에 오류가 있을시엔 작업관리자에서 자바와 관련된 프로세스들을 모두 종료해주고 다시 수행한다. 1. CMD창 관리자 권한으로 실행. 2. SonarQube가 설치되어있는 폴더 내부에 bin/해당하는 운영체제 버전에 맞는 폴더/ 로 이동 3. start StartSonar.bat 입력 마찬가지로 해당 과정중에 오류가 있을시엔 작업관리자에서 자바와 관련된 프로세스들을 모두 종료해주고 다시 수행한다.