আমি কিভাবে প্রতিটি গিট কমান্ডের শুরুতে "git" টাইপ করতে পারি?




version-control command-line-interface (8)

আমি প্রত্যেক Git কমান্ডের শুরুতে শব্দ git টাইপ থাকার উপায় আছে যদি একটি উপায় আছে বিস্মিত।

"গিট মোডে" প্রবেশ করার জন্য কমান্ড প্রম্পট খোলার পরে শুরুতে শুধুমাত্র একবার git কমান্ড ব্যবহার করার উপায় থাকলে এটি ভাল হবে।

উদাহরণ স্বরূপ:

git>

তারপরে আমরা যা লিখি তার প্রত্যেকটি কমান্ড ডিফল্টভাবে একটি Git কমান্ড হিসাবে ব্যাখ্যা করা হয়।

ডেটাবেস কমান্ডগুলি লেখার জন্য আমরা কিভাবে MySQL শেল ব্যবহার করি তার অনুরূপ:

mysql>

এটি আমাকে প্রতিদিন 'গিট' টাইপ করার সময় থেকে বাঁচাবে।

দ্রষ্টব্য: আমি উইন্ডোজে git-bash ব্যবহার করছি।


অন্য কোনও পদ্ধতি যা কোন কমান্ডের সাথে কাজ করবে: Ctrl + R (বিপরীত-আই-অনুসন্ধান) ব্যবহার করুন।

বিপরীত-আই-অনুসন্ধান আপনাকে আপনার কমান্ড ইতিহাস অনুসন্ধান করতে দেয়। একই স্ট্রিংয়ের সাথে আবার অনুসন্ধান পুনরাবৃত্তি করতে আপনার অনুসন্ধান স্ট্রিং টিপে Ctrl + R পুনরাবৃত্তি করুন।

আপনি শুধুমাত্র একবার একটি কমান্ড টাইপ করতে হবে, তাহলে আপনি কমান্ডের যে কোনও substrings থেকে যে কমান্ড প্রত্যাহার করতে পারেন। বেশিরভাগ ক্ষেত্রে, আপনি সম্পূর্ণ দীর্ঘস্থায়ী কমান্ড এবং তাদের বিভিন্ন রূপগুলিকে কেবলমাত্র দুই থেকে তিনটি ভাল-পরিদর্শিত অনুসন্ধান অক্ষরগুলি মনে করতে পারেন। কোনও পূর্বরূপ কনফিগারেশনের জন্য আপনার শেলটি সাধারণভাবে ব্যবহার করার প্রয়োজন নেই এবং এটি শেলটি ব্যবহার করার জন্য স্ব-অভিযোজিত, কেবল একবার সম্পূর্ণ কমান্ডটি টাইপ করুন এবং কমান্ডগুলি স্বয়ংক্রিয়ভাবে আপনার কমান্ড ইতিহাসে যোগ করা হবে।

  • 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 docker-compose stop && git pull && make && docker-compose up -d : <Ctrl-R>up
  • ইত্যাদি

তাছাড়া, Ctrl-R কেবল bash তে কাজ করে না, তবে পডথন শেল, আইপিথন, মাইএসকিএল শেল, psql shell, irb (ruby) প্রভৃতির মতো অনেক প্রোগ্রাম যা পঠনযোগ্য লাইব্রেরি ব্যবহার করে (এবং তাদের অনেকগুলি রয়েছে)।


আপনার উদাহরণে, আপনি এটি একটি 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;
}

দয়া করে নোট করুন যে আমি কেবল স্মৃতি থেকে লিখেছি এবং যেটি আমি কম্পাইলারের সাথে এটি পরীক্ষা করে দেখিনি। তুচ্ছ সিনট্যাক্স ত্রুটি হতে পারে।


আপনি gitsh চেষ্টা করতে পারেন। তাদের পঠন থেকে:

gitsh প্রোগ্রাম git জন্য একটি ইন্টারেক্টিভ শেল হয়। gitsh মধ্যে থেকে আপনি আপনার স্থানীয় উপনাম এবং কনফিগারেশন ব্যবহার করে এমনকি কোন git কমান্ড ইস্যু করতে পারেন।

  • গিট কমান্ড গ্রুপে আসা ঝোঁক। একটি ডেডিকেটেড গিট শেল এ চালানোর মাধ্যমে ওভার ওভার ওভার টাইপ git টাইপ করুন:
sh$ gitsh
gitsh% status
gitsh% add .
gitsh% commit -m "Ship it!"
gitsh% push
gitsh% ctrl-d
sh$

অথবা সেখানে সংযুক্ত অন্যান্য প্রকল্পে একটি চেহারা আছে:

  • git-sh - একটি গিট প্রম্পট, উপনাম এবং সমাপ্তির সাথে একটি কাস্টমাইজড ব্যাশ শেল।
  • gitsh - পার্লে লেখা একটি সহজ গিট শেল।
  • repl - একটি REPL মধ্যে subcommands সঙ্গে কোনো প্রোগ্রাম wraps।

নোট: এই নিজেকে ব্যবহার না।


আপনি যা জিজ্ঞাসা করছেন তা ঠিক নয়, তবে আপনি যে গিট কমান্ডগুলি প্রায়শই ব্যবহার করেন তার জন্য আপনি আপনার ~/.bashrc Bashrc এ কিছু শেল উপনাম সেট আপ করতে পারেন:

alias commit='git commit'
alias checkout='git checkout'
...

এছাড়াও আপনি Git নিজেই মধ্যে aliases তৈরি করতে পারেন যে নোট করুন:

git config --global alias.ci commit
git config --global alias.co checkout
...

এটি আপনাকে git commit git ci পরিবর্তে git ci টাইপ করতে দেয়, এবং এভাবে।


আমি জানি এটি একটি খুব দেরী উত্তর কিন্তু এই প্রশ্নটি সত্যিই আমার সাথে একটি নোট আঘাত করেছে কারণ আমি এখন এইরকম পুনরাবৃত্তি থেকে বিরক্ত হয়েছি।

আমি আপনার সম্পর্কে নিশ্চিত নই তবে আমি সত্যি সত্যি (আমি পুনরাবৃত্তি করি না ) প্রতিটি git কমান্ডের জন্য উপনাম তৈরি করতে চাই না , তাই পরিবর্তে আমি এই সমস্যা সমাধানের জন্য NoGit নামে একটি পাইথন স্ক্রিপ্ট লিখেছি:

#!/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 একটি "জটিল" শব্দটি অপ্রয়োজনীয় পুনরাবৃত্তি প্রতিরোধ করার জন্য একটি সহজ পাইথন স্ক্রিপ্ট।

ডকুমেন্টেশন:

  • %undo কমান্ড স্ট্যাক থেকে শেষ কমান্ড মুছে ফেলে
  • %run কমান্ড স্ট্যাকের কমান্ড চালায় এবং স্ট্যাক সাফ করে
  • %exit কমান্ডটি না করেই সিএলআই বন্ধ করে দেয়
  • ctr+c চাপানো চলমান %run; %exit হিসাবে একই %run; %exit %run; %exit
  • স্ক্রিপ্টটি স্ক্রিপ্টের মতো একই ফোল্ডারে git.history নামক একটি ফাইলে কার্যকর করা আদেশগুলি সংরক্ষণ করে
  • আপনি একটি আধা কোলন ব্যবহার করে এক লাইন একাধিক কমান্ড যোগ করতে পারেন
  • কমান্ডের শুরুতে আপনি কীওয়ার্ড git ব্যবহার করতে পারেন এবং স্ক্রিপ্টটি সদৃশ হবে না ( EG: git init হয় না)

উদাহরণ কমান্ড:

  1. init
  2. add .
  3. stage .
  4. commit -m "inital commit"
  5. %run; %exit

অতিরিক্ত তথ্য (লিনাক্স ব্যবহারকারীদের জন্য):

আপনি যদি চান তবে আপনি .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'

শুভ কামনা।


একটি পার্ল এক-মাছ ধরার নৌকা যা এই কাজ করবে:

perl -nE 'BEGIN {print "git > "} system "git $_"; print "git > "'

এই আপনি টাইপ যাই হোক না কেন টাইপ, git সঙ্গে prefixed। এবং আপনি ^D আঘাত না হওয়া পর্যন্ত এটা চালিয়ে যাবেন।


খনি একটি বন্ধু একটি ছোট bash স্ক্রিপ্ট যে এই accomplishes তৈরি। এটা Replify বলা 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

মৌলিক উপাদান জন্য, আপনি করতে পারেন:

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 + সি সঙ্গে প্রস্থান করুন





git-bash