Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

한바다

git pull오류 ,git clone후 브랜치 유지하는 방법,git초대, 로긴세션유지코드 본문

카테고리 없음

git pull오류 ,git clone후 브랜치 유지하는 방법,git초대, 로긴세션유지코드

한바다진화 2024. 7. 2. 14:58

☑️  git pull 오류

다른 조원이 마스터 깃 수정후 수정된 상황을 가져오고자 git pull을 했는데 계속 아래와 같이 오류코드가 노출 되었다.

C:\Users\user1\hanbatang>git pull
remote: Enumerating objects: 53, done.
remote: Counting objects: 100% (53/53), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 31 (delta 21), reused 17 (delta 7), pack-reused 0
Unpacking objects: 100% (31/31), 8.17 KiB | 170.00 KiB/s, done.
From https://github.com/jaewon0123/hanbatang
   3d933d0..ef9cdba  master     -> origin/master
Updating 3d933d0..ef9cdba
error: Your local changes to the following files would be overwritten by merge:
        hanbatang/src/main/resources/application.properties
Please commit your changes or stash them before you merge.
Aborting

C:\Users\user1\hanbatang>git pull
Updating 3d933d0..ef9cdba
error: Your local changes to the following files would be overwritten by merge:
        hanbatang/src/main/resources/application.properties
Please commit your changes or stash them before you merge.
Aborting

 

▶이에 따른 해결책은

우선 git branch명령어를 쳐서 녹색이 master가 아닌 내 브랜치가 녹색인걸 확인한다.

그러고 나서  git add .  ->  git commit -m" "   -> git push 후 진행한다

[진행한 코드]

C:\Users\user1\hanbatang>git branch
  jinhwa2-reeGister
* master

C:\Users\user1\hanbatang>git pull -f
Updating 3d933d0..ef9cdba
error: Your local changes to the following files would be overwritten by merge:
        hanbatang/src/main/resources/application.properties
Please commit your changes or stash them before you merge.
Aborting

C:\Users\user1\hanbatang>git stash
warning: in the working copy of 'hanbatang/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst', LF will be replaced by CRLF the next time Git touches it
Saved working directory and index state WIP on master: 3d933d0 濡쒓렇?명솕硫댁뿉???뚯썝媛€??踰꾪듉 誘멸뎄???섏젙fatal: unknown write failure on standard output

C:\Users\user1\hanbatang>git pull
Updating 3d933d0..ef9cdba
Fast-forward
 hanbatang/src/main/resources/application.properties       | 9 ---------
 hanbatang/src/main/resources/templates/MarketGuide.html   | 2 +-
 hanbatang/src/main/resources/templates/beefKindsInfo.html | 2 +-
 hanbatang/src/main/resources/templates/board.html         | 2 +-
 hanbatang/src/main/resources/templates/chatbot.html       | 2 +-
 hanbatang/src/main/resources/templates/editAddress.html   | 2 +-
 hanbatang/src/main/resources/templates/editMember.html    | 2 +-
 hanbatang/src/main/resources/templates/getMyPage.html     | 2 +-
 hanbatang/src/main/resources/templates/introCompany.html  | 2 +-
 hanbatang/src/main/resources/templates/mainPage.html      | 2 +-
 hanbatang/src/main/resources/templates/memberBye.html     | 2 +-
 hanbatang/src/main/resources/templates/memberSign.html    | 4 ++--
 hanbatang/src/main/resources/templates/productPage.html   | 2 +-
 hanbatang/src/main/resources/templates/readBoard.html     | 2 +-
 hanbatang/src/main/resources/templates/success.html       | 2 +-
 hanbatang/src/main/resources/templates/uploadBoard.html   | 2 +-
 16 files changed, 16 insertions(+), 25 deletions(-)

C:\Users\user1\hanbatang>git checkout jinhwa2-reeGister
Switched to branch 'jinhwa2-reeGister'

C:\Users\user1\hanbatang>git pull origin master
From https://github.com/jaewon0123/hanbatang
 * branch            master     -> FETCH_HEAD
Auto-merging hanbatang/src/main/resources/application.properties
CONFLICT (content): Merge conflict in hanbatang/src/main/resources/application.properties
Automatic merge failed; fix conflicts and then commit the result.

C:\Users\user1\hanbatang>

☑️깃 마스터가 제대로 당겨오지 않을 시 나는 기존 폴더를 삭제하고 깃 클론 후 브랜치를 새로 생성했다. 그래서 뜻하지 않게 브랜치 부자가 되었다. 벌써 4개째...

그런데 깃 클론을 해도 새로 브랜치를 만들지 않아도 되는 방법이 있었다니... 알게되어서 블로그에 적어놓고 수시로 보려고 한다.

[코드]

Microsoft Windows [Version 10.0.19045.4529]
(c) Microsoft Corporation. All rights reserved.

C:\Users\user1\hanbatang>git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hanbatang/.factorypath
        modified:   hanbatang/target/classes/com/hanbatang/controller/BoardController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/LoginController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MailController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MainController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MainPageController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MemberController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/ReadBoardController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/UploadBoardController.class
        modified:   hanbatang/target/classes/com/hanbatang/dto/Board.class
        modified:   hanbatang/target/classes/com/hanbatang/dto/Member.class
        modified:   hanbatang/target/classes/com/hanbatang/dto/Members.class
        modified:   hanbatang/target/classes/com/hanbatang/mapper/BoardMapper.class
        modified:   hanbatang/target/classes/com/hanbatang/mapper/LoginMapper.class
        modified:   hanbatang/target/classes/com/hanbatang/mapper/MemberMapper.class
        modified:   hanbatang/target/classes/com/hanbatang/service/BoardService.class
        modified:   hanbatang/target/classes/com/hanbatang/service/EmailService.class
        modified:   hanbatang/target/classes/com/hanbatang/service/LoginService.class
        modified:   hanbatang/target/classes/com/hanbatang/service/MemberService.class
        modified:   hanbatang/target/classes/com/hanbatang/vo/MailVo.class

no changes added to commit (use "git add" and/or "git commit -a")

C:\Users\user1\hanbatang>git branch leegyejun-board

C:\Users\user1\hanbatang>git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hanbatang/.factorypath
        modified:   hanbatang/target/classes/com/hanbatang/controller/BoardController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/LoginController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MailController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MainController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MainPageController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/MemberController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/ReadBoardController.class
        modified:   hanbatang/target/classes/com/hanbatang/controller/UploadBoardController.class
        modified:   hanbatang/target/classes/com/hanbatang/dto/Board.class
        modified:   hanbatang/target/classes/com/hanbatang/dto/Member.class
        modified:   hanbatang/target/classes/com/hanbatang/dto/Members.class
        modified:   hanbatang/target/classes/com/hanbatang/mapper/BoardMapper.class
        modified:   hanbatang/target/classes/com/hanbatang/mapper/LoginMapper.class
        modified:   hanbatang/target/classes/com/hanbatang/mapper/MemberMapper.class
        modified:   hanbatang/target/classes/com/hanbatang/service/BoardService.class
        modified:   hanbatang/target/classes/com/hanbatang/service/EmailService.class
        modified:   hanbatang/target/classes/com/hanbatang/service/LoginService.class
        modified:   hanbatang/target/classes/com/hanbatang/service/MemberService.class
        modified:   hanbatang/target/classes/com/hanbatang/vo/MailVo.class

no changes added to commit (use "git add" and/or "git commit -a")

C:\Users\user1\hanbatang>git checkout leegyejun-board
M       hanbatang/.factorypath
M       hanbatang/target/classes/com/hanbatang/controller/BoardController.class
M       hanbatang/target/classes/com/hanbatang/controller/LoginController.class
M       hanbatang/target/classes/com/hanbatang/controller/MailController.class
M       hanbatang/target/classes/com/hanbatang/controller/MainController.class
M       hanbatang/target/classes/com/hanbatang/controller/MainPageController.class
M       hanbatang/target/classes/com/hanbatang/controller/MemberController.class
M       hanbatang/target/classes/com/hanbatang/controller/ReadBoardController.class
M       hanbatang/target/classes/com/hanbatang/controller/UploadBoardController.class
M       hanbatang/target/classes/com/hanbatang/dto/Board.class
M       hanbatang/target/classes/com/hanbatang/dto/Member.class
M       hanbatang/target/classes/com/hanbatang/dto/Members.class
M       hanbatang/target/classes/com/hanbatang/mapper/BoardMapper.class
M       hanbatang/target/classes/com/hanbatang/mapper/LoginMapper.class
M       hanbatang/target/classes/com/hanbatang/mapper/MemberMapper.class
M       hanbatang/target/classes/com/hanbatang/service/BoardService.class
M       hanbatang/target/classes/com/hanbatang/service/EmailService.class
M       hanbatang/target/classes/com/hanbatang/service/LoginService.class
M       hanbatang/target/classes/com/hanbatang/service/MemberService.class
M       hanbatang/target/classes/com/hanbatang/vo/MailVo.class
Switched to branch 'leegyejun-board'

C:\Users\user1\hanbatang>git branch
* leegyejun-board
  master

C:\Users\user1\hanbatang>

 

 

☑️ 깃 초대하는 방법
- 깃에 로그인 한다.  -로그인하면 우측 상단에 동그라미 모양을 클릭하면 나의 저장소가 나온다

- 초대하고자 하는 저장소를 클릭 한다.. 그리고 우측 상단에 setting을 누른다

로그인창이 나오면 비밀번호 입력 후


위와 같은 순서대로 초대를 할 수 있다.!!

☑️ 회원가입후 로그인세션유지 코드

금일 조별과제에서 git에서 merge를 진행 한후(각자의 프로젝트를 합쳤다) 마스트에서 각 수행물이 잘 이행되는지 확인하는 과정에서 회원가입 마지막페이지에서 아래의 기능을 추가 하였다.
원래는 회원가입완료 후 메인페이지에서 다시 로그인을 진행해야하는 과정인데 회원가입후 로그인 세션을 유지하는 거였다.     

첫번째로 진행한 결과 물은 아래와 같다.

[@Controller에서 수정전 코드]
@PostMapping("/register")
	public String insertMember(Member member, Model model) {
		memberService.insertMember(member);
		model.addAttribute("msg", "한바탕 회원가입을 축하합니다!");
		return"success";
	}
[@Controller에서 수정후 코드]
@PostMapping("/register")
public String insertMember(Member member, HttpSession session, Model model) {
    // 회원가입 로직
    memberService.insertMember(member);

    // 성공 메시지 설정
    model.addAttribute("msg", "한바탕 회원가입을 축하합니다!");

    // 회원 정보를 이용해 로그인 처리
    Member loginMember = memberService.getLogin(member.getMemberId(), member.getMemberPw());

    // 세션에 로그인 정보 저장
    session.setAttribute("loginSession", loginMember);

    //회원가입 완료 페이지
   return"success";
}

 

그런데 위와 같이 수행 시 " getLogin"가 임포트 되지 않았다. 한마디 로 빨간줄이 가서 난감했다.

해당 부분을 해결하기 위해 결국 마이베티스(sql문 select로 작성), 매퍼,서비스, 세군대를 추가 해야 했다.

추가한 코드는 아래와 같다.

[서비스 추가]
public Member getLogin(String memberId, String memberPw) {
//로그인 문을 가져오는 메서드 추가
}
[매퍼 추가]
Member findByMemberIdAndMemberPw(String member_id, String member_pw);
}
[sql문 추가]
 <!-- 로그인 처리를 위한 select 문 추가 -->
    <select id="findByMemberIdAndMemberPw" parameterType="map" resultType="com.hanbatang.dto.Member">
        SELECT * FROM members 
        WHERE member_id = #{member_id} 
        AND member_pw = #{member_pw}
    </select>

 

위와 같이 수정하니 로그인 세션을 유지하는 코드가 너무 길어지는 것 같았다. 그래서

두번째로 아래와 같이 최종적으로 수정을 마무리 하였다.

[컨트롤러 수정 전 코드]
@PostMapping("/register")
	public String insertMember(Member member, Model model) {
		memberService.insertMember(member);
		model.addAttribute("msg", "한바탕 회원가입을 축하합니다!");
		return"success";
	}
[컨트롤러 수정 후 코드]
	@PostMapping("/register")
	public String insertMember(Member member, HttpSession session, Model model) {
	    // 회원가입 로직
	    memberService.insertMember(member);

	    model.addAttribute("msg", "한바탕 회원가입을 축하합니다!");
        //회원가입을 한 내용을 로긴 세션을 사용해서 유지한 상태로
	    session.setAttribute("loginSession", member);

	    // 메인 페이지로 리디렉션
	    return "success";
	}

 

결국  "session.setAttribute("loginSession", member);" 이 한줄을 추가 한 것이다. 돌고 돌아 핵심을 잡았다.

[해당 구문에 대한 추가 설명]

session은 특별히 model.addAttribute나 어떤 값으로 전달하지 않아도 컴퓨터에서 임시로 저장한다는 의미가

담겨 있고, session.setAttribute("임시저장에사용할변수명",변수에담을내용); 자바에서 전달이 오면

html 파일에서는 session. 임시저장에사용할변수명 을 작성해주면 된다

맨 앞에 session은 컴퓨터상의 약속이기 때문에 붙여준다