모든 Git 명령을 시작할 때“git”을 입력하지 않으려면 어떻게해야합니까?
git
모든 Git 명령의 시작 부분에 단어를 입력하지 않아도되는 방법이 있는지 궁금합니다 .
"Git mode"git
로 들어가기 위해 명령 프롬프트를 연 후 처음에 한 번만 명령 을 사용하는 방법이 있다면 좋을 것 입니다.
예를 들면 다음과 같습니다.
git>
그 후에 우리가 입력하는 모든 명령은 기본적으로 Git 명령으로 해석됩니다.
MySQL 쉘을 사용하여 데이터베이스 명령을 작성하는 방법과 유사한 방식으로 :
mysql>
이렇게하면 git
하루에 수백 번 입력하지 않아도됩니다 .
참고 :git-bash
Windows 에서을 사용 하고 있습니다.
gitsh 시도해 볼 수 있습니다 . 그들의 readme에서 :
이
gitsh
프로그램은 git 용 대화식 쉘입니다. 내부에서gitsh
로컬 별명과 구성을 사용하더라도 git 명령을 실행할 수 있습니다.
- 힘내 명령은 그룹으로 오는 경향이 있습니다.
git
전용 git 쉘에서 실행 하여 반복해서 입력하지 마십시오 .sh$ gitsh gitsh% status gitsh% add . gitsh% commit -m "Ship it!" gitsh% push gitsh% ctrl-d sh$
또는 연결된 다른 프로젝트를 살펴보십시오.
참고 : 이것을 직접 사용하지 않았습니다.
이것을 할 Perl one-liner :
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'
편집기를 사용하십시오.
vs 코드 와 commit
같이 좋아하는 편집기에서와 같은 명령을 입력하고 git을보다 효율적으로 사용하십시오.
또는 입력 git
하여 모든 명령을 가져옵니다.
내 친구가 이것을 달성하는 작은 bash 스크립트를 만들었습니다. Replify 라고 합니다 .
$ 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"이 입력됩니다.
나는 이것이 매우 늦은 대답이라는 것을 알고 있지만,이 질문 은 꽤 오랫동안 한동안 이런 종류의 반복 으로 고통 받고 있기 때문에 나에게 메모를 쳤다 .
나는 당신에 대해 확실 하지 않지만 솔직히 모든 명령에 대해 별칭을 만들고 싶지 는 않지만 ( DO N'T 반복 하지 않음 ) git
대신 이 문제를 해결하기 위해 NoGit 이라는 Python 스크립트를 작성했습니다 .
#!/usr/bin/env python
import sys, os, signal, atexit, readline, subprocess
commands, stop, history_file = [], False, os.path.join(os.getcwd(), "git.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)
NoGit 은 "git"키워드의 불필요한 반복을 막기위한 간단한 파이썬 스크립트입니다.
선적 서류 비치:
- 이
%undo
명령은 스택에서 마지막 명령을 제거합니다 %run
명령은 스택의 명령을 실행하고 스택을 지 웁니다%exit
명령은 아무것도하지 않고 CLI를 닫습니다- 누르는
ctr+c
것은 달리기와 같다%run; %exit
- 스크립트는 스크립트
git.history
와 같은 폴더에 있는 파일에 실행 된 명령을 저장합니다 - 세미콜론을 사용하여 한 줄에 여러 명령을 추가 할 수 있습니다
git
명령 시작 부분에 키워드 를 사용할 수 있으며 스크립트는 키워드 를 복제 하지 않습니다 ( EG :git init
는되지 않음git git init
).
명령 예 :
init
add .
stage .
commit -m "inital commit"
%run; %exit
추가 정보 (Linux 사용자의 경우) :
원하는 경우 .py
확장을 제거하고 다음을 사용하여 실행 파일로 변환 할 수 있습니다 .
mv ./git.py ./git
chmod +x ./git
그런 다음 스크립트를 다음과 같이 호출하는 대신
python3 git.py
대신 이것을 실행하십시오 :
./git
추가 정보 (게으른 사람들을위한) :
게으르고 입력하지 않으려면 ./
이 스크립트를 /bin/
폴더 로 이동 하고 별칭을 만들 수 있습니다.
당신이 있다면 정말, 정말 게으른, 다음 명령을 사용합니다 :
sudo cp ./git /bin/nogit
sudo chmod +x /bin/nogit
alias nogit='/bin/nogit'
당신이 있다면 정말, 정말, 정말 게으른, 복사하고 다음 한 줄을 붙여 :
sudo cp ./git /bin/nogit && sudo chmod +x /bin/nogit && alias nogit='/bin/nogit'
게으름이 이전에 인류에게 알려지지 않은 수준에 도달 한 경우 동일한 단일 라이너의 더 컴팩트 한 버전입니다.
sudo cp ./git /bin/nogit;sudo chmod +x /bin/nogit;alias nogit='/bin/nogit'
행운을 빕니다.
모든 명령에서 작동하는 또 다른 방법은 Ctrl + R (reverse-i-search)을 사용하는 것입니다.
reverse-i-search를 사용하면 명령 기록을 검색 할 수 있습니다. 검색 문자열을 누른 후 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 (ruby) 등과 같이 readline 라이브러리를 사용하는 많은 프로그램이 있습니다 (많은 프로그램이 있습니다).
이 예에서는 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로 종료
Conemu와 함께 Windows 7을 사용할 때 개발 환경 시작 스크립트에 다음을 추가했습니다.
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
자세한 내용 은 Ubuntupit의 Ubuntu 및 Linux Mint 에 브래킷 코드 편집기를 설치하는 방법을 참조하십시오 .
'IT' 카테고리의 다른 글
로컬로 Facebook Connect를 테스트하는 방법 (0) | 2020.05.13 |
---|---|
jquery 3.0 url.indexOf 오류 (0) | 2020.05.13 |
많은 수의 쉼표를 추가하는 데 유용한 방법이 있습니까? (0) | 2020.05.13 |
배치 파일에서 매개 변수가 비어 있는지 테스트하는 올바른 방법은 무엇입니까? (0) | 2020.05.12 |
파이썬에서 인덱스를 사용하여 목록 반복 (0) | 2020.05.12 |