파일 체크 아웃/삭제 바로 가기

6531 단어 vim-fugitive

묘사

Gstatus에 단축키가 있으면 어떤 파일의 작업 복사본을 신속하게 복구할 수 있다면 다행이다.co를 사용하는 것이 좋은 단축 방법일 수 있습니다.나는 이렇게 생각한다.
원하는 키 조합을 누르면 파일이 원격 저장소(있는 경우)의 현재 상태(HEAD)로 복원됩니다.
- 단계 파일:단계 취소 + 체크 아웃
- 비분류 파일:체크 아웃
- 미추적 파일:파일 시스템에서 제거
특히 미추적 파일 삭제에 대한 확인 정보도 포함해야 한다고 생각합니다.

토론 #1

확인서에 없어요.확인은 일반적인 상황이 아니라 예외적인 상황을 겨냥해야 한다.rm라는 이름을 rm -i화한 사람들이 생각나지만 어떤 내용을 삭제할 때마다 본능적으로 rm -rf를 입력한다.
그러나 더 중요한 것은 사람들이 정말 맹목적으로 서류를 서명하고 변경 사항을 보지 않겠는가?나는 거의 항상 diff를 먼저 열 수 있다고 생각한다. 이 점에서 나는 :Gread를 사용하여 검사를 할 수 있는데, 그 장점은 역사를 취소하지 않는 것이다.

토론 #2

이 일을 확인하는 관점이 좋다.
체크아웃: 추적되지 않은 파일은 무엇입니까?이들에게 :Gread 솔루션은 그다지 편리하지 않다.

토론 #셋

응, 맞아. 이거 좀 까다롭다.나는 줄곧 :Gw|Gremove!하고 나서 "Implement:Remove"가 여전히 나의 업무 목록에 있는지 반복해서 검사했다.
나는 또 git clean를 제외하고 Git 자체는 미추적 파일을 삭제할 방법이 없다고 지적했다.그럼 왜 도주범:?추적되지 않은 파일을 삭제하기 위해 co를 실행하지 않는다는 것은 아니다.다만 추적되지 않은 파일 자체를 삭제하는 것은 co의 이유가 아니라고 말했다.
잠깐 앉을래요.기능 추가는 삭제 기능보다 쉽다.
이와 동시에 이 문제를 생각하는 것은 나에게 관련 생각을 주었다.현재 파일 설명자를 호출하는 데 사용되는 기록되지 않은 명령 모드 맵 <C-R><C-G> 을 확장했습니다. :Gstatus 에서 앞에 있는 파일을 호출합니다.예를 들어, 당신은 :Git rm <C-R><C-G> 파일을 삭제할 수 있습니다.너는 그것을 그려낼 수 있다!;)

토론 #4

사용할 필요가 없다co.다른 지름길도 효과가 있을 것이다. 적어도 나에게는 그렇다.나는 우리가 너에게 생각할 시간을 좀 주어야 한다고 생각한다.당신은 도주범 코드에서 나보다 더 중요합니다:)<C-R><C-G> 명령은create!그래서 이런 행동은 쉽게 이루어질 거야...
나와 나의 많은 동료들은 이 기능을 매우 보고 싶지만, 만약 당신이 그것이 필요도 중요하지 않다고 생각한다면, 나는 당신을 지지할 것이다.너의 생각을 나에게 알려줘!

토론 #5

나는 업무 중에 점점 더 많은 탈주범을 사용했다. 나는 Gstatus 버퍼에서 하나의 파일로git co를 실행하고 싶다는 것을 발견했다.파일의 버퍼에서 Gread를 실행할 수 있지만, Gstatus의 모든 변경 사항을 보면 더 많은 절차가 필요하다는 것을 의미합니다.보십시오: Gstatus의 변경 사항, 폐기하고 싶은 파일, 그리고: Gread는 이 파일의 버퍼에 있습니다. 그리고: w, 이 파일에 또 다른 변경 사항이 있으면 제: Gstatus 버퍼로 이동하십시오.Gstatus에서 온 단축키가 있다면 목록에 있는 파일을 실행할 수 있습니다: Gread (자동 쓰기) 를 실행하거나 git 서명만 실행하면 됩니다.어떤 방식이든지 간에 나는 내가 작업 영역에서 하는 모든 일을 보는 동시에 변경을 포기하는 빠른 방법을 찾고 있다.
겸사겸사 한마디 하자면, 이 플러그인 (그리고vim rails) 을 제공해 주셔서 감사합니다.

토론 #6

갑자기 생각이 났어요.우리는 git hash-object -w를 사용하여 파일이 작업 트리에 있는 SHA를 가져와 그 내용을 저장소에 저장할 수 있다.git gc가 실행되기 전에 이 SHA에서 파일의 내용을 검색할 수 있습니다.이것은 우리가 적어도 이 기능을 실현할 수 있다는 것을 의미한다.이것은 내가 이 기능을 추가하는 주요 문제를 해결했다.(나는 내가 이미 위에서 이 우려를 논술한 줄 알았지만, 없는 것 같다.)
남은 유일한 문제는 지도를 어디서 그리느냐이다.나의 두 가지 기준.
1. 이것은 이동할 수 없는 버튼이 아니라 사고 발생을 방지하는 데 도움이 될 것이다:echomsg 같은 경우 제외)
2. 사고 예방을 돕기 위해 아주 흔한 시사에 너무 가까워서는 안 된다(r 너무 가까워서J3. 읽기 전용 버퍼에 사용되는 내장 버퍼와 중첩되지 않아야 한다j4. 부기부호가 있어야 한다(이상적인 경우)
나의 첫 번째 선택은 Y (복구/삭제) 였지만, 버퍼를 다시 불러오기 위해 선택했습니다.나는 R에 동의하지만, 그것은 마침 제출한 지도 한 무더기 사이에 있기 때문에, 나는 그것을 수위에 놓고 싶다.co로 시작하는 것들(예를 들어 디스카드에서)은 훌륭하지만, 사실상 확산에 사용되는 지도와 똑같이 인접해 있다.
나는 누군가가 좋은 생각이 있기를 바란다.그렇지 않으면 사용할 수 있습니다d.co

토론 #7

가 쓸모가 있을까요?
어떤 의미에서 보면 이것은\220ber 철회인데, 그 장점은 버튼의 위치 이동이고, 취소는 읽기 전용 버퍼에서 아무런 의미가 없다.U #225를 복사본으로 열어서 죄송합니다.나는 확실히 전체 목록을 읽었지만, 같은 기능을 요구하는 것을 의식하지 못했다.
dd는 git 상태 출력에서 그 줄을 삭제한 것처럼 기억에 도움이 되지만, D.I초 U에 너무 가까워서 취소할 수 없습니다.
철회할 수 있다는 우려는 합리적이다.너는 #153에서 언급한 적이 있는데, 여기에는 없다.실제로 이를 일반화하고 Gstatus의 대다수 작업에 취소 창고를 제공할 수 있을 것 같지만 이것도 거북이처럼 보인다.다음은 무엇입니까, VCS 해제 창고를 VCS에 넣을까요?단지 이것이 가능하기 때문에 이것은 좋은 생각이라는 것을 의미하지는 않는다.
그러나 이러한 특수한 상황에 대해서는 권장 실행

토론 #8

에 따라 SHA를 목록에 저장한 다음 ^R 균형 U 명령으로 되찾을 수 있습니다.나는 ^R이 u의 대립면이라는 것을 알고 있지만, 이것은 여전히 기억에 상당히 도움이 된다. 이런 상황에서 u를 자신의 대립면으로 만들 수 없다. 왜냐하면 사용자가 다른 파일을 즉시 복구할 수 있기 때문이다.
dd 복구 또는 삭제, u 복구/삭제,Vim의 일반적인 행동, 그리고 그것을 어떻게 바꾸는지 짐작합니다: Gstatus 버퍼를 보면 의미가 있습니다. 만약 취소 시스템이 미친 것처럼 보이지 않는다면, 이것은 나중에 취소 시스템을 홍보하기 위해 문을 열 것입니다.git hash-object 아, 네가 전에 한 질문에 대답할 때 나는 차이를 보지 않고 서류에 서명한다(때로).나는 큰 (수백 개의 파일) 프로젝트에서 많은 일을 했다. 보통 나는 하나의 구성 요소에서 기능을 작성하지만, 무슨 일이 발생했는지, 어떻게 사용했는지 알고 싶으면 전혀 상관없는 구성 요소에서 임시 변경을 해야 한다. (예를 들어 추가 출력을 얻는 것)실행: Gstatus를 실행하기 전에 변경 사항을 잊어버렸지만, 파일 이름을 보았을 때, 변경 사항은 내가 제출하고 싶지 않은 것임을 보지 않아도 알 수 있습니다.
나는 이것이 너의 호기심을 만족시킬 수 있기를 바란다. ()

토론 #9

나는 @orac가 묘사한'vim 방식'을 좋아한다.

토론 #10

는 서명에 사용되고 dd는 취소에 사용됩니다.하지만 이건 좀 어려울 것 같아. 그렇지?나에게 있어서 이것은 가장 직관적이고 직접적인 방법인 것 같다.확인이 부족함에도 불구하고.그래도 이룰 수 있을 것 같아서요.u 취소 기능이 있으면 확인할 필요가 없습니다.확인은 니가 쉽게 취소할 수 없는 일만 겨냥해야 돼.

토론 #11

vimrc에 어떻게 비추는지 알고 싶은 사람은 다음과 같이 추가해야 할 내용입니다.

토론 #12

나는 이전의 토론을 놓치려고 했다.objdb에서 추적하는 것은 매우 의미가 있지만, 직접 해시 처리를 하려면 ref를 저장해야 한다.
더 좋은 선택은 두 번째 색인을 사용하는 것이다. 나는 줄곧 이 블로그에 관한 글을 쓰고 싶었다. 나는 가능한 한 오늘 저녁에 하는 것을 기억할 것이다.autocmd FileType gitcommit nmap <buffer> U :Git checkout -- <C-r><C-g><CR>dup에게 사과합니다.문제, 나는 이것이 실시되기를 바란다...금세
추가 알림

토론 #13

까지 구독을 고려해 주십시오.

토론 #14

보기

토론 #15

에 U에 undocumented를 추가할 수 있다면 다행입니다. 비록 저는 이런 것을 특별히 좋아하지는 않지만.경미한 테스트만 있을 뿐입니다.취소 명령은: echomg'ed이며 SHA도 이름 없는 레지스터에 넣습니다.Gstatus:+1:

토론 #16

@tpope-시험용

토론 #17

에서 이 문제를 만났습니다.
지금은요?

토론 #18

@tpope-works 정말 좋아요!U

토론 #19

묵묵히 나를 위해 실패했다.나는 철회 명령으로 확인 정보를 얻었지만 아무 일도 일어나지 않았다.

토론 #20

파일은 어느 부분에 있습니까?당신의 업무 목록은 무엇입니까?

토론 #21

@tpope야, 바로 그거야:)
내 작업 디렉터리가 프로젝트 루트 디렉터리일 때만 작동합니다.U 단일 파일

토론 #22

토론 #23

의 방법은

토론 #24

의 주석으로 기록할 수 있다고 생각합니다.나는 이 정보를 찾을 때까지 도움말 파일과 GitHub 문제 기록을 검색하는 데 시간이 좀 걸렸다.중복 발행 수량으로 볼 때, 더 많은 사람들이 그것을 찾기 어려울 것 같다.:Gread 너무 좋아요.그러나 나는 그것이 비친다고 생각한다. :w변경 사항을 포기하고 :h :Gstatus에서 이 줄을 삭제하는 것 같다.

토론 #25

바로 "show diff"맵을 "delete all your changes"맵으로 바꿀게요. 좋을 것 같아요.dd허허, 나는 :Gstatus에 대해 의견이 없다. 한 가지 방법만 있으면 변경을 완전히 포기할 수 있다.감사합니다!

토론 #26

기록이 되나요?내가 이 문제를 발견한 것은 미추적 기능을 삭제하는 문제를 제출하기 전에 미추적 기능을 검색했기 때문이다.

토론 #27

714

좋은 웹페이지 즐겨찾기