programing

모든 Git 명령의 시작 부분에 "git"를 입력하지 않으려면 어떻게 해야 합니까?

oldcodes 2023. 6. 23. 22:26
반응형

모든 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$

또는 여기에 연결된 다른 프로젝트를 살펴보십시오.

  • git-sh - Git 프롬프트, 별칭 및 완료가 포함된 사용자 지정 bash 셸입니다.
  • gitsh - Perl로 작성된 간단한 Git 셸입니다.
  • repl - REPL에서 하위 명령을 사용하여 모든 프로그램을 래핑합니다.

참고: 제가 직접 사용한 적은 없습니다.

다음을 수행하는 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 cigit 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'

편집기를 사용합니다.

다음과 같은 명령을 입력합니다.commitvs 코드와 같은 좋아하는 편집기를 사용하여 Git로 효율성을 높일 수 있습니다.

enter image description here

는유형을 합니다.git모든 명령을 가져오려면:

enter image description here

제 친구가 이것을 달성하는 작은 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, readlinesubprocess 모듈에 따라 달라집니다.

설치 참고 사항(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하는 경우

시연:

  1. init
  2. add -A
  3. stage -A
  4. status
  5. commit -m "initial commit"
  6. %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 명령을 쉽게 사용할 수 있으며 다양한 기능도 있습니다.

enter image description here

오른쪽 상단 모서리의 두 번째 쌍안경 아이콘은 확장 기능을 설치하는 데 사용됩니다.

enter image description here

검색하기brackets git위의 이미지처럼 설치합니다.

enter image description here

오른쪽 상단 모서리에 네 번째 아이콘이 표시되므로 위 이미지와 같은 변경 사항을 클릭하여 확인하십시오.

브래킷을 설치하려면 다음 명령을 사용합니다.

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

반응형