반응형

출처 : https://stackoverflow.com/questions/35115585/remove-file-from-all-commits

모든 commit에서 파일 지우기

저는 폰트 파일을 업로드 했고 github에 (그 폰트파일을) 몇가지 업데이트를 배포할 권리가 없습니다.

저는 상대적으로 비활성화된 저장소를 가지고 있고 필요할 때 모든 멤버들에게 알릴 수 있는 능력이 있습니다. 저는 이 해결책 중 몇가지를 사용하였습니다. 저는 폰트의 이탈릭체와 진하기 버전의 이름 %font%가 있는 Resources\Video\%font%.ttf 라고 불리는 디렉터리에 파일을 지울 필요가 있습니다. 제가 사용해야 할 명령어는 무엇일까요?

4개의 답변 중 1개의 답변

이러한 경우 당신은 --tree-filter 옵션과 함께 Git Filter Branch 명령을 사용할 수 있습니다.

문법은 git filter-branch --tree-filter <명령> ... 입니다.

git filter-branch --tree-filter 'rm -f Resources\Video\%font%.ttf' -- --all

윈도우즈에서는 / 대신에 \를 사용해야 합니다.

명령어에 대한 설명:

< 명령 > : 구체적인 어떤 shell 명령

--tree-filter : Git은 작업 디렉터리에서 각 commit을 체크하고 당신의 명령을 실행하고 다시 commit할 것입니다.

--index-filter : Git은 git 히스토리는 갱신하지만 작업 디렉터리는 갱신하지 않습니다.

--all : 모든 branch에서 모든 commit을 filter 적용을 합니다.

참고 : 파일 경로가 확실하지 않으므로 파일 경로를 확인하십시오.

이것이 당신에게 도움이 되기를 바랍니다.

반응형
반응형

출처
https://stackoverflow.com/questions/4824590/propagate-all-arguments-in-a-bash-shell-script

bash 쉘 스크립트에서 모든 인수를 전달

저는 다른 스크립트를 호출하는 애무 간단한 스크립트를 작성하였고 현재 스크립트로부터 실행할 스크립트로 파라미터를 전달할 필요가 있습니다.
예를 들어 제 스크립트는 foo.sh이고 bar.sh를 호출합니다.
foo.sh:

bar $1 $2 $3 $4

각 파라미터를 명시적으로 지정하지 않고 이를 어떻게 할 수 있을까요?


8개의 답변 중 1개의 답변만 추려냄

같은 것을 파라미터로 사용하길 원하신다면 순수한 $@대신에 "$@"를 사용하세요.
확인:

$ cat foo.sh
#!/bin/bash
baz.sh $@

$ cat bar.sh
#!/bin/bash
baz.sh "$@"

$ cat baz.sh
#!/bin/bash
echo Received: $1
echo Received: $2
echo Received: $3
echo Received: $4

$ ./foo.sh first second
Received: first
Received: second
Received:
Received:

$ ./foo.sh "one quoted arg"
Received: one
Received: quoted
Received: arg
Received:

$ ./bar.sh first second
Received: first
Received: second
Received:
Received:

$ ./bar.sh "one quoted arg"
Received: one quoted arg
Received:
Received:
Received:
반응형

+ Recent posts