[깃허브] 커밋을 유지하면서 파일들을 폴더로 이동시키고 싶습니다.

kysu5095의 이미지

안녕하세요.
깃 레포를 정리하는도중 문제를 도저히 해결하지 못하여 질문드립니다.

현재 제가 하고있는 작업은 폴더 안에 있는 파일들을 이전 커밋을 유지하는 상태에서
폴더화를 시키는 작업입니다.

예를 들면 A라는 폴더 안에 [a.c] [b.c] [c.c] [A.cpp] [B.cpp] [C.cpp] 라는 6개의 파일이 있을 때
c_dir, cpp_dir라는 두개의 폴더를 만들고 c_dir안에 c파일들을 넣고, cpp_dir안에 cpp파일들을 넣으려 합니다.

구조도는 아래와 같습니다.
A
├─cpp_dir
│ A.cpp
│ B.cpp
│ C.cpp

└─c_dir
| a.c
| b.c
| c.c

제 검색 능력으로는 기존에 있던 파일들을 다른 폴더에 넣게되면 커밋을 할 수 밖에 없습니다ㅠ
다시 하나하나 하기에도 파일들이 너무 많습니다.
처음부터 구조를 잘 잡았어야 했는데 너무 안일했던 것 같습니다.
혹시 사용해보시거나, 알고계시는 유용한 팁 있으시면 알려주시면 감사하겠습니다ㅠㅠ

익명 사용자의 이미지

새 커밋을 하는 것이 정석입니다.

물론 git commit --amend 같은 명령을 써서 이전 커밋을 덮어씌우는 식으로 진행해 버릴 수도 있습니다.

혹시 이전 커밋이 이미 리모트에 올라간 상황이라면 git push -f 이 따위 명령으로 리모트도 덮어씌워 줘야 하겠지요.

======

근데 대부분의 경우, 사람들은 그 따위로 일하는 사람이랑 git으로 협업 하고 싶지 않아 한답니다.

혼자만 쓰는 git repo이거나, 혹은 git을 같이 쓰는 사람들 중 내가 최고 갑이라서 아무도 나한테 뭐라 못 할 때만 그렇게 하세요.

저라면 "reorganizing source files" 뭐 이 정도의 명목으로 새 커밋을 파는 방향을 먼저 고려해 볼 겁니다.

kysu5095의 이미지

다행히 레포는 제 개인적인 공간입니다.
협업하는 상황이 온다면 이번 경험을 바탕으로 더욱 신중하게 구조를 짜도록 노력하겠습니다.
이제 본격적으로 개발자의 길로 접어드는 주니어에게 좋은 충고 감사합니다!

김정균의 이미지

git mv 로 하면 될 것 같은데요.

익명 사용자의 이미지

예. 그렇게 하면 되겠습니다.

그런데 질문의 요점은 commit을 새로 추가하지 않고 repo를 그렇게 변경할 수 있는지인 것 같은데요.
그래서 "가능은 하지만 대개 별로 권장되지는 않는다"라고 답변 드렸습니다.

김정균의 이미지

저는 commit 을 새로 추가 하지 않는다는 개념을 해당 파일의 commit revision 을 유지하고 싶어 하는 것으로 이해를 했습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.