모든 Git 명령의 시작 부분에 "git"를 입력하지 않으려면 어떻게 해야 합니까?
그 단어를 타이핑하지 않을 수 있는 방법이 있는지 궁금합니다.git
모든 Git 명령의 시작 부분에서.
그것을 사용할 수 있는 방법이 있다면 좋을 것입니다.git
명령 프롬프트를 열어 "Git 모드"로 전환한 후 처음에 한 번만 명령을 실행합니다.
예:
git>
입력하는 모든 명령은 기본적으로 Git 명령으로 해석됩니다.
MySQL 셸을 사용하여 데이터베이스 명령을 작성하는 방법과 유사한 방법으로:
mysql>
이렇게 하면 입력할 필요가 없습니다.git
하루에 수백 번
참고: Windows에서 를 사용합니다.
당신은 Gitsh를 시도해 보는 것이 좋을 것입니다.그들의 낭독에서:
그
gitsh
프로그램은 git에 대한 대화형 셸입니다.gitsh
로컬 별칭 및 구성을 사용하여 모든 git 명령을 실행할 수 있습니다.
- Git 명령은 그룹으로 표시되는 경향이 있습니다. 않음력을 하지 마십시오.
git
전용 깃 셸에서 실행함으로써 반복적으로 실행할 수 있습니다.sh$ gitsh gitsh% status gitsh% add . gitsh% commit -m "Ship it!" gitsh% push gitsh% ctrl-d sh$
또는 여기에 연결된 다른 프로젝트를 살펴보십시오.
참고: 제가 직접 사용한 적은 없습니다.
다음을 수행하는 Perl 원라이너:
perl -nE 'BEGIN {print "git > "} system "git $_"; print "git > "'
이렇게 하면 다음과 같이 입력한 내용을 모두 실행할 수 있습니다.git
그리고 그것은 당신이 칠 때까지 계속 그럴 것입니다.^D
.
이것은 정확히 당신이 요구하는 것은 아니지만, 당신은 당신의 컴퓨터에서 몇 가지 셸 별칭을 설정할 수 있습니다.~/.bashrc
가장 자주 사용하는 Git 명령의 경우:
alias commit='git commit'
alias checkout='git checkout'
...
또한 Git 자체 내에서 별칭을 만들 수 있습니다.
git config --global alias.ci commit
git config --global alias.co checkout
...
입할수있다니습을 할 수 .git ci
에 git commit
등등.
저는 GitBash에 ~/.bash_profile의 별칭을 사용하는 것을 매우 좋아합니다.이 접근 방식을 사용하면 제가 좋아하는 몇 가지가 있습니다.
# git
alias gw='git whatchanged'
alias gg='git grep -n -C8'
alias ggi='git grep -i -n -C8'
alias gb='git branch'
alias gbd='git branch -D'
alias gba='git branch -a'
alias gc='git checkout'
alias gcp='git cherry-pick'
alias gfo='git fetch origin'
alias s='git status'
alias gmom='git merge origin/master'
alias grom='git rebase origin/master'
alias gpom='git pull origin master'
alias pplog='git log --oneline --graph --decorate'
편집기를 사용합니다.
다음과 같은 명령을 입력합니다.commit
vs 코드와 같은 좋아하는 편집기를 사용하여 Git로 효율성을 높일 수 있습니다.
는유형을 합니다.git
모든 명령을 가져오려면:
제 친구가 이것을 달성하는 작은 bash 스크립트를 만들었습니다.복제라고 합니다.
$ replify git
Initialized REPL for [git]
git> init
Initialized empty Git repository in /your/directory/here/.git/
git> remote add origin https://your-url/repo.git
git> checkout -b new-branch
Switched to a new branch 'new-branch'
git> push
여기 다른 방법이 있습니다.요청하신 내용은 아니지만, 얼마 전부터 사용하고 있는데 꽤 괜찮은 것 같습니다.다행을에다니합추에 다음 합니다.~/.bashrc
:
complete -E -W git
이제 빈 Bash 프롬프트에서 Tab을 누르면 "git"가 입력됩니다.
소개:
하여 CLI를 사용할 수 있습니다.git
저는 이 정확한 문제를 해결하기 위해 대본을 작성했습니다.NoGit는 "git" 키워드의 불필요한 반복을 방지하기 위한 간단한 python 스크립트입니다.
업데이트(23/06/2022):
이 업데이트 당시 이 답변은 3년, 1주, 6일이 경과되었습니다.그 이후로 돌아와서 NoGit로 인한 충돌 오류를 해결했습니다../git
실파일실제및행.git
실행 가능하고 행동에 약간의 사소한 변경을 가했습니다..history
파일. 프로젝트의 GitHub 페이지와 관련 기사(프로젝트의 GitHub 페이지에서 링크됨)도 업데이트되었습니다.
설치:
NoGit를 실행하려면 시스템에 Python 3이 설치되어 있어야 합니다.공식 저장소에서 스크립트를 다운로드하거나 아래의 소스 코드를 복사할 수 있습니다.
참고: 스크립트는 sys, os, signal, atexit, readline 및 subprocess 모듈에 따라 달라집니다.
설치 참고 사항(Linux):
원는경제수있다니습거할우하를 할 수 ..py
확장 및 실행 파일로 변환:
mv nogit.py nogit
chmod +x ./nogit
./nogit # open the NoGit CLI
이 를 스립다이수있도습다니동할로 이동할 ../bin/
디렉토리를 생성하고 이 디렉토리를 사용하지 않고 실행할 수 있는 별칭을 만듭니다../
:
sudo cp ./nogit /bin/nogit
sudo chmod +x /bin/nogit
alias nogit="/bin/nogit"
또는 다음 명령을 CLI에 복사할 수 있습니다.
git /bin/nogit && sudo chmod +x /bin/nogit && alias nogit='/bin/nogit'
설명서:
%undo
합니다.%run
합니다.%exit
도 하지 CLI를 .ctrl+c
를 실행하는 과 같은 .%run; %exit
또는%run
그리고.%exit
- 은 " 명기다파저일다니장됩에음록"라는에 저장됩니다.
nogit.history
와 . - 세미콜론을 사용하여 한 줄에 여러 명령을 추가할 수 있습니다.
- 당신은 할 수 .
git
스크립트가 추가하지 않기 때문에 키워드.git
하는 경우
시연:
init
add -A
stage -A
status
commit -m "initial commit"
%run; %exit
소스 코드:
#!/usr/bin/env python
import sys, os, signal, atexit, readline, subprocess
commands, stop, history_file = [], False, os.path.join(os.getcwd(), "nogit.history")
def run_commands():
stop = True
for cmd in commands:
command = ["git" if not cmd.startswith("git ") else ""]
command = [cmd] if command[0] == "" else [command[0], cmd]
subprocess.Popen(command).communicate()
commands = []
def signal_handler(sig, frame):
run_commands()
sys.exit(0)
try:
readline.read_history_file(history_file)
signal.signal(signal.SIGINT, signal_handler)
while True:
if stop == True:
break
command = input("git> ")
if command == "%undo":
commands.pop()
elif command == "%run":
run_commands()
elif command == "%exit":
sys.exit(0)
else:
commands += [cmd.strip() for cmd in command.split(";")]
signal.pause()
readline.set_history_length(-1)
except IOError:
pass
atexit.register(readline.write_history_file, history_file)
모든 명령에서 작동하는 또 다른 접근 방식은 Ctrl+R(역-i-search)입니다.
역 i 검색을 사용하면 명령 기록을 검색할 수 있습니다.검색 문자열을 누른 후 Ctrl+R을 반복하여 동일한 문자열로 검색을 더 반복합니다.
명령을 한 번만 입력하면 명령의 하위 문자열에서 해당 명령을 호출할 수 있습니다.대부분의 경우 잘 배치된 검색 문자 2~3개만으로 전체 매우 긴 명령과 다양한 변형을 불러올 수 있습니다.셸을 정상적으로 사용하는 것 외에는 사전 구성이 필요하지 않으며 셸 사용 방법에 따라 자동으로 조정됩니다. 전체 명령을 한 번만 입력하면 명령이 명령 기록에 자동으로 추가됩니다.
git commit --amend
:<Ctrl+R>am
git pull
:<Ctrl+R>pu
git rebase --rebase-merges -i --onto origin/develop origin/develop feature/blue-header
:<Ctrl+R>blu
git rebase --abort
:<Ctrl-R>ab
git rebase --continue
:<Ctrl-R>con
docker-compose stop && git pull && make && docker-compose up -d
:<Ctrl-R>up
- 기타
게다가 Ctrl-R은 bash뿐만 아니라 Python 셸, IPython, mysql 셸, psql 셸, irb(루비) 등과 같이 리드라인 라이브러리를 사용하는 많은 프로그램에서 작동합니다.
예제에서는 MySql 프롬프트와 비교합니다.작동 방식은 MySql 프로세스가 시작되고 사용자가 해당 프로세스에 명령을 제공하는 것입니다.그렇다면, 당신이 선택한 언어로 비슷한 것을 쓰는 것은 어떨까요?다음은 C++의 간단한 예입니다.
#include <iostream>
#include <cstdlib>
int main(int argc, char *argv[]){
while(true){
std::cout << "git> ";
std::cout.flush();
std::string command;
std::getline(std::cin, command);
if(command == "exit") break;
std::system("git " + command);
}
return 0;
}
제가 그것을 메모리에서 작성한 것일 뿐 컴파일러로 확인하지 않았다는 점에 유의하시기 바랍니다.사소한 구문 오류가 있을 수 있습니다.
기본적인 작업의 경우 다음을 수행할 수 있습니다.
function ggit(){ while true; do printf 'git> '; read; eval git $REPLY; done }
git> status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: yarn.lock
no changes added to commit (use "git add" and/or "git commit -a")
git> add .
git> status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: yarn.lock
git>
ctrl+c를 사용하여 종료
Windows 7을 Conemu와 함께 사용할 때 개발 환경 시작 스크립트에 다음을 추가했습니다.
doskey g=git $*
이것만 있으면, 나는 그냥 사용할 수 있습니다.g
을 입력하는 대신 명령을 합니다.git
마지막으로 Windows 10과 Conemu를 사용하여 시도했지만 작동하지 않았습니다. 버그가 있습니다. 하지만 시도해 볼 가치가 있습니다.
대괄호 편집기를 사용하면 코드와 git 명령을 쉽게 사용할 수 있으며 다양한 기능도 있습니다.
오른쪽 상단 모서리의 두 번째 쌍안경 아이콘은 확장 기능을 설치하는 데 사용됩니다.
검색하기brackets git
위의 이미지처럼 설치합니다.
오른쪽 상단 모서리에 네 번째 아이콘이 표시되므로 위 이미지와 같은 변경 사항을 클릭하여 확인하십시오.
브래킷을 설치하려면 다음 명령을 사용합니다.
sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install brackets
자세한 내용은 다음을 참조하십시오.Ubuntu에서 Brackets Code Editor를 설치하는 방법 및 Ubuntupit에서 Linux Mint.
끝나고
while read -erp "*git*${PS1@P}" cmd rest; do
if _=`git help $cmd 2>&-`
then eval git $cmd "$rest"
else eval $cmd "$rest"
fi
done
입력하는 모든 명령은 기본적으로 Git 명령으로 해석됩니다.
할 수 , 를 붙이면 . 만 약 그 하 이 럼 않 보 그 처 면 그 있 해 은 그 지 당 그 래 서 그 신 단 싶 사 펀 만 명 당 면 다 하 신 닝 있 이 된 약 용 고 령 을 수 고 섞 을 명 과 들 다 령른rm foo
평가될것다니입라고다▁bed'▁would것▁eval니.git rm foo
,그렇지만\rm foo
▁the▁plain▁run▁would를 실행합니다.rm
처럼 밖으로 ^그것을 끝내기 위해 평소처럼 외출합니다.
오늘 이후: GitHub CLI를 사용할 수 있습니다.
GitHub CLI는 GitHub을 터미널로 가져옵니다.컨텍스트 전환을 줄이고, 집중력을 높이며, 자신만의 워크플로우를 보다 쉽게 스크립팅하고 만들 수 있습니다.올해 초, 우리는 GitHub CLI의 베타 버전을 발표했습니다.베타를 릴리스한 이후 사용자는 250,000건 이상의 풀 요청을 생성하고 350,000건 이상의 병합을 수행했으며 GitHub CLI를 통해 20,000건 이상의 문제를 생성했습니다.우리는 매우 사려 깊은 피드백을 받았고, 오늘 GitHub CLI는 베타 버전에서 벗어나 Windows, macOS 및 Linux에서 다운로드할 수 있습니다.
언급URL : https://stackoverflow.com/questions/56505000/how-do-i-avoid-typing-git-at-the-begining-of-every-git-command
'programing' 카테고리의 다른 글
복제를 위해 GitHub.com 에 연결할 수 없음 (0) | 2023.06.28 |
---|---|
mongo 엔진으로 "존재하지 않으면 삽입 업데이트"를 수행하는 방법은 무엇입니까? (0) | 2023.06.28 |
WPF 프로그램의 속도를 높이는 방법은 무엇입니까? (0) | 2023.06.23 |
뭐가 더 좋습니까?하위 쿼리 또는 내부 접합 10개 테이블? (0) | 2023.06.23 |
데이터베이스와 테이블스페이스의 차이점은 무엇입니까? (0) | 2023.06.23 |