প্রতিটি গিট কমান্ডের সূচনাতে আমি কীভাবে "গিট" টাইপ করতে পারি?


190

আমি ভাবছি gitপ্রতিটি গিট কমান্ডের শুরুতে শব্দটি টাইপ না করার কোনও উপায় আছে কিনা ।

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

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

git>

যার পরে আমরা যে প্রতিটি কমান্ড টাইপ করি তা ডিফল্টরূপে গিট কমান্ড হিসাবে ব্যাখ্যা করা হয়।

ডাটাবেস কমান্ড লিখতে আমরা কীভাবে মাইএসকিউএল শেলটি ব্যবহার করি তার অনুরূপ উপায়:

mysql>

এটি আমাকে gitদিনে কয়েকবার টাইপ করা থেকে বাঁচাবে ।

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


87
যাঁরা অফ-টপিক হওয়ার কারণে এটি বন্ধ করার পক্ষে ভোট দিয়েছেন, তাদের জন্য দয়া করে আপনি যে পাঠ্যটি ক্লিক করছেন তা পড়ুন: "সাধারণ কম্পিউটিং হার্ডওয়্যার এবং সফ্টওয়্যার সম্পর্কিত প্রশ্নগুলি স্ট্যাক ওভারফ্লোয়ের জন্য অফ-টপিক না হয় যদি না তারা সরাসরি প্রোগ্রামিংয়ের জন্য ব্যবহৃত সরঞ্জামগুলিকে জড়িত না করে । "। গিট প্রোগ্রামারদের দ্বারা ব্যবহৃত একটি সরঞ্জাম। এই সাইটে এটির নিজস্ব ট্যাগ রয়েছে বলে প্রমাণিত d
জেবেন্টলি

5
আপনি এত "গিট" টাইপ করছেন কেন? আপনার আইডিইতে একটি কীপ্রেসে শক্তিশালী ভিসিএস সংহত থাকা উচিত। আপনি কি বরং দিনে 50 বার "গিট টান" টাইপ করেন, বা
সিটিআরটিএল

8
@ লাইকিংস্টিভ কার্যত সমস্ত গিট সহায়তা এবং প্রজ্ঞা কমান্ড-লাইনের ক্ষেত্রে দেওয়া হয়।
এড র্যান্ডাল

6
@ লাইকিংস্টেভ আমি এটিকে এত বেশি টাইপ করছি কারণ এটি দ্রুত। আমি w 100wpm টাইপ করি, আরও যদি আমি গিটার সাথে থাকি যেমন কীপ্রেসগুলির সাথে ঘনিষ্ঠভাবে পরিচিত; জিইউআই-তে ক্লিক করার তুলনায় এটি আরও সহজ just আপনার প্রিয় আইডিইতে কীবোর্ড শর্টকাট থাকতে পারে। এটা আপনার জন্য সুন্দর। <M-Tab> গিট ব্লা <সিআর> আমার পেশীর স্মৃতিতে ইতিমধ্যে থাকলে আমি কেন তাদের শেখার সময় নষ্ট করব?
ফান্ডা মনিকার লসুইট

3
সেখানে "এই প্রশ্নটি বন্ধ করা উচিত কারণ ব্যবহারকারী এমন প্রশ্ন জিজ্ঞাসা করছে যা অর্থবোধ করে না" - যেমন আপনি যা জিজ্ঞাসা করছেন তা পেয়েছি তবে শেলটি কীভাবে জানতে পারে যে আপনি "প্রবেশ করতে চান না" git কমান্ড "যদি সত্যিই এটি করার কোনও উপায় ছিল।
ব্যবহারকারী 3728501

উত্তর:


190

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

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

  • গিট কমান্ড দলে দলে আসে। gitকোনও উত্সর্গীকৃত গিট শেলটিতে চালনা করে বারবার এবং বার বার টাইপ করবেন না:
sh$ gitsh
gitsh% status
gitsh% add .
gitsh% commit -m "Ship it!"
gitsh% push
gitsh% ctrl-d
sh$

বা সেখানে যুক্ত অন্যান্য প্রকল্পগুলি দেখুন:

  • গিট-শ - গিট প্রম্পট, এলিয়াস এবং সমাপ্তির সাথে স্বনির্ধারিত বাশ শেল।
  • gitsh - পার্লে লেখা একটি সাধারণ গিট শেল।
  • repl - একটি REPL এ সাবকম্যান্ডের সাথে যে কোনও প্রোগ্রাম মোড়ানো।

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


22
গ্র্যাম্বল ... repl(1)রিপ্লাই নয়। এটি কিছুই প্রকাশ বা মুদ্রণ করে না। এটি প্রোগ্রাম পরিচালনা করে।
কেভিন

11
@ কেভিন এটি ব্যবহারকারীর অনুরোধগুলিতে পড়ে, ব্যবহারকারীর অনুরোধটি মূল্যায়ন করে (কোনও প্রোগ্রাম চালিয়ে) এবং প্রোগ্রামটির আউটপুট প্রিন্ট করে। শেলগুলিও এটি করে।
ইয়াক্ক - অ্যাডাম নেভ্রামামন্ট

2
@ ইয়াক-অ্যাডামনেভ্র্যামন্ট: না, এটি অবশ্যই "প্রোগ্রামটির আউটপুট প্রিন্ট করে না"। এটা তোলে টার্মিনালে প্রোগ্রামের stdout- এ পর্যন্ত হুক্স, এবং তারপর প্রোগ্রাম নিজস্ব আউটপুট ছাপে - ব্যতীত প্রোগ্রামের stdout- এ ইতিমধ্যে টার্মিনাল (ওভার স্বয়ংক্রিয়ভাবে উত্তরাধিকারসূত্রে পর্যন্ত লাগানো fork()/ exec()), তাই repl(1)এমনকি করছেন না হয় যে
কেভিন

6
@ কেভিন আমি আপনার অনুভূতিটি বুঝতে পারি, তবে একটি আরপিএল-এর কঠোর সংজ্ঞা বেশিরভাগ দোভাষী "আরএপিএল" গুলি বিভিন্ন ভাষায় বাদ দেবে । কেবল খাঁটি কার্যকরী ভাষায় আপনি নিশ্চিত করতে পারতেন যে মূল্যায়নের কোনও পার্শ্ব-প্রতিক্রিয়া নেই, তবে হাস্কেল-এও "REPL" জিএইচসিআই ডিফল্টরূপে IOপদক্ষেপ গ্রহণ করবে এবং টার্মিনাল-সংযুক্ত স্ক্রিনে মুদ্রণের মতো পার্শ্ব-প্রতিক্রিয়া সহ এগুলি কার্যকর করবে।
11:25

2
@ কেভিন replএকটি স্বতন্ত্র আরপিএল নয়; এটি একটি আরএপিএল সিস্টেম তৈরির একটি মাধ্যম যার replমধ্যে কেবল ইন্টারেক্টিভ উপাদান। এটা কি ফর্সা?
কাইল স্ট্র্যান্ড

116

একটি পার্ল ওয়ান-লাইনার যা এটি করবে:

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

এটি প্রিফিক্সযুক্ত আপনি যা টাইপ করবেন তা কার্যকর করবে git। এবং এটি আঘাত করা অবধি আপনি চালিয়ে যাবেন ^D


6
এটি সত্যিই ওপি যা চেয়েছে তার সাথে সাদৃশ্যপূর্ণ এবং খুব হালকা ওজনের প্যাকেজে!
রুহোলা

2
এটি নিখুঁত হবে যদি এটি রিডলাইনের সাথে কাজ করে তবে দুর্ভাগ্যক্রমে এটি না ঘটে (কারণ আশ্চর্যজনকভাবে এটি পার্লের -neপতাকাগুলির চারপাশে কঠোরভাবে একটি হ্যাক )।
কনরাড রুডলফ

11
@ কনরাডরুডল্ফperl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'

57

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

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

এছাড়াও খেয়াল করুন যে আপনি গিটের মধ্যেই এলিয়াস তৈরি করতে পারেন:

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

এটি আপনাকে এর git ciপরিবর্তে টাইপ করতে দেয় git commitএবং আরও অনেক কিছু।


7
এই পদ্ধতির অপূর্ণতা হ'ল প্রতিটি গিট কমান্ডের জন্য একটি পৃথক উপন্যাস তৈরি করা প্রয়োজন।
টিম বিগলাইসেন

22
শুধুমাত্র সবচেয়ে ঘন ঘন ব্যবহৃত। মানে আপনি কতবার ব্যবহার করেন git hash-objectবা ব্যবহার করেন git interpret-trailers? আমি কেবল এটি বিকল্প হিসাবে দিচ্ছি কারণ যতদূর আমি জানি, প্রশ্নটি যা জিজ্ঞাসা করছে তা আসলেই বিদ্যমান নেই।
টমাস

15
ছাড়াও ciজন্য commitআমি একটি শেল ওরফে ব্যবহার gজন্য git, এই টাইপ অধিকাংশ হ্রাস করে এবং আমাকে আমার পছন্দের শেল থাকতে দেয়।
rkta

32

আমি আমার গিটব্যাশটির জন্য ~ / .bash_ প্রোফাইলে এলিয়াস ব্যবহার করার এক বড় অনুরাগী। আপনি যদি এই পদ্ধতির সাথে যান তবে এখানে আমার কয়েকটি প্রিয় রয়েছে:

# 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'

3
কোথায় প্রতিশ্রুতিবদ্ধ: পি
কিউউআর

14
আমি অন্তর্ভুক্ত করছি না commitবা pushযেহেতু আমি কিছু অতিরিক্ত সেকেন্ড চাইছি (টাইপ করার সময়) নিশ্চিত হয়েছি যে আমি কিছু নষ্ট করছি না
জ্যাকবআইআরআর

3
প্রতিশ্রুতিবদ্ধ এবং ধাক্কা আপনি শক্তি ধাক্কা ব্যবহার না করে কিছু ধ্বংস করতে সক্ষম হবে না। তবে আমি আগেই গিট স্ট্যাটাস ব্যবহার করার চেষ্টা করি।
qwr

1
আমি এটিই করেছি, +1। যদিও অন্যান্য জবাব যেমন উল্লেখ করেছে তেমন আমি গিটস চেষ্টা করে দেখতে প্রলুব্ধ হই
কফি টেবিলস্প্রেসো

1
@ কফি টেবিল এসপ্রেসো আমি এই সত্যকে সম্মান করি যে আপনি স্বীকার করেছেন যে কয়েকটি কী-স্ট্রোক হ'ল আপডেটগুলি সংরক্ষণ করা এবং একটি প্রকল্প ধ্বংস করার মধ্যে পার্থক্য।
লজিক্যালব্রঞ্চ

31

আপনার সম্পাদক ব্যবহার করুন।

বনাম কোডেরcommit মতো আপনার প্রিয় সম্পাদকের কাছ থেকে কমান্ডটি টাইপ করুন এবং গিটের সাথে আরও দক্ষ হন:

এখানে চিত্র বর্ণনা লিখুন

বা gitসমস্ত কমান্ড পেতে টাইপ করুন :

এখানে চিত্র বর্ণনা লিখুন


13
আমি এই সমস্ত ডাউন ভোট দেখে অবাক হয়েছি। এই বৈশিষ্ট্যগুলি সমর্থন করে এমন IDEs ব্যবহার করে এমন লোকদের পক্ষে এটি কোনও ভয়ঙ্কর উত্তর নয়।
গ্লেন পিয়ার্স

4
আমি মনে করি লোকেরা ডাউন-ভোট দিয়েছে কারণ সবাই ভিএস-কোড ব্যবহার করে / পছন্দ করে না। যে কোনও উপায়ে, আমি মনে করি এটি একটি শালীন সমাধান তাই আমার কাছ থেকে +1 করা।
লজিক্যালব্রঞ্চ

4
@ লজিকালব্র্যাঞ্চ, লোকেরা সাধারণত কমান্ড লাইন থেকে গিটটি ব্যবহার করে থাকে এবং আমি এটি সম্পর্কে অবহিত, তবে কিছু সম্পাদকের ভিতরে গিট সমর্থন বিদ্যমান এবং এটি চেষ্টা করার মতো worth
prosti থেকে

1
আমি এই উত্তরটি পছন্দ করি না কারণ প্রত্যেকে ভিএস কোড ব্যবহার করে না (আমি ব্যক্তিগতভাবে এটি পছন্দ করি না), তবে ডাউনोट করবে না কারণ এটি পিপিএল ব্যবহার করার জন্য এটি একটি দুর্দান্ত সমাধান।
কফি টেবিলস্প্রেসো

1
@ কফি টেবিলস্প্রেসো, আপনি যদি সাব্লাইম ব্যবহার করেন তবে সেখানে গিটসভি নামে একটি প্লাগইন রয়েছে এবং আরও কিছু ... আজকাল প্রায় প্রতিটি সম্পাদককে গিটের জন্য একরকম সমর্থন রয়েছে। এটি উত্তরের মূল বিষয় ছিল, আপনি "আপনার সম্পাদক ব্যবহার করুন" পড়তে পারেন read
প্রস্টি

26

আমার এক বন্ধু একটি ছোট বাশ স্ক্রিপ্ট তৈরি করেছে যা এটি সম্পাদন করে। একে রিপ্লাইফাই বলা হয়

$ 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

6
ঠিক আছে, আমি উমুরের উত্তরে ইতিমধ্যে এটি উল্লেখ করেছি, তবে evalমূল স্ক্রিপ্ট উত্সে ব্যবহার করা সেরা ধারণা নয়। while IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";doneপরিবর্তে আপনার বন্ধুকে ব্যবহার করতে বলুন
সের্গি কলডিয়াজহনি

23

এখানে অন্য উপায়। এটি যা জিজ্ঞাসা করা হয়েছিল তা একেবারেই নয়, তবে আমি এটি কিছু সময়ের জন্য ব্যবহার করছি এবং এটি বেশ সুন্দর। আপনার সাথে নিম্নলিখিত লাইনটি যুক্ত করুন ~/.bashrc:

complete -E -W git

এখন খালি বাশ প্রম্পটে ট্যাব টিপলে "গিট" টাইপ হবে।


5
মনে রাখবেন যে আপনি যদি অন্য শেল ব্যবহার করছেন তবে আপনাকে এটি উপযুক্ত ফাইলটিতে রাখতে হবে। উদাহরণস্বরূপ, zsh স্বরূপ, আপনি এটা রেখে দেব ~/zshrc, tcsh এর, আপনাকে অবশ্যই রেখে দেব ~/tcshrcইত্যাদি
TheOnlyMrCat

20

আমি জানি এই একটি খুব দেরী উত্তর কিন্তু এই প্রশ্ন সত্যিই আমাকে সাথে একটি নোট তাড়িত কারণ আমি থাকেন তাহলে সঙ্গে তার আচরণ দুর্ভোগ পুনরাবৃত্তি এই ধরনের থেকে বেশ জন্য যখন এখন।

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

#!/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কমান্ড কিছু কাজ ছাড়া CLI বন্ধ
  • টিপানো ctr+cদৌড়ানোর মতোই%run; %exit
  • স্ক্রিপ্ট হ'ল কমান্ডগুলি সংরক্ষণ করে যা git.historyস্ক্রিপ্ট হিসাবে একই ফোল্ডারে ডাকা একটি ফাইলের জন্য কার্যকর করা হয়েছিল
  • আপনি আধা কোলন ব্যবহার করে এক লাইনে একাধিক কমান্ড যুক্ত করতে পারেন
  • আপনি gitকমান্ডের শুরুতে কীওয়ার্ডটি ব্যবহার করতে পারেন এবং স্ক্রিপ্টটি এটির সদৃশ হবে না ( EG: git init হয়ে ওঠে না git 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'

শুভকামনা।


17

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

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

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

  • 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
  • ইত্যাদি

অধিকন্তু, সিটিআরএল-আর কেবল বাশের উপর নয়, প্রচুর প্রোগ্রামে রিডলাইন লাইব্রেরি ব্যবহার করে (এবং সেগুলির অনেকগুলি রয়েছে), যেমন পাইথন শেল, আইপিথন, মাইএসকিএল শেল, পিএসকিএল শেল, আইআরবি (রুবি) ইত্যাদি uses


15

আপনার উদাহরণে, আপনি এটি একটি মাইএসকিএল প্রম্পটের সাথে তুলনা করুন। যেভাবে কাজ করে তা হ'ল মাই এসকিএল প্রক্রিয়া শুরু হয় এবং আপনি সেই প্রক্রিয়াতে আপনার আদেশগুলি দেন। যেমন, আপনার পছন্দের ভাষায় অনুরূপ কিছু লিখছেন না কেন? সি ++ তে এখানে একটি সাধারণ উদাহরণ রয়েছে:

#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;
}

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


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

@ থমাস ওয়েলারের সাথে আমি অবশ্যই একমত আমি কী বলছিলাম তা স্পষ্টভাবে প্রদর্শন করার জন্য প্রোগ্রামটি পোস্ট করেছি, কারণ এটি লিখতে সমস্যা হয় না।
john01dav

9
আপনি যদি প্রোগ্রামটি বাগ-মুক্ত হতে চান এবং একটি সুন্দর পরিমাণের বৈশিষ্ট্য চান তবে আপনি এই পদ্ধতির সাথে অনেক সময় বিনিয়োগ করতে যাচ্ছেন। উদাহরণস্বরূপ, প্রাথমিক বিল্ড ব্যর্থতা ঠিক করার পরে (স্টাডি :: সিস্টেম () কনস্ট চর * চায়) আপনি খেয়াল করবেন ইওএফ-তে একটি অসীম লুপ রয়েছে। আপনি ইতিহাস / রিডলাইন সমর্থন, ট্যাব সমাপ্তি, ডিরেক্টরি / সেট এনভ ভার্স / শেল আউট / ... ইত্যাদি পরিবর্তন করতে কিছু বিল্টিন চাইবেন যদি বিদ্যমান সফ্টওয়্যার থাকে (এই ক্ষেত্রে গিটশের মতো) তবে কেন এটি ব্যবহার করবেন না?
যাযাবর টাইপ

1
@ ন্যামডিকটাইপ এটি একটি বৈধ সমালোচনা, তবে অন্যান্য সফ্টওয়্যার শিখানোও সময়ের প্রতিশ্রুতি। এই পদ্ধতির সুবিধাগুলি হ'ল এটিকে কাজ করতে কয়েক মিনিটের প্রয়োজন, এবং এটি আপনার প্রত্যাশা বা যা চান ঠিক তা করবে (পরিবর্তন সহ)।
john01dav

2
রিডলাইন, লাইন সম্পাদনা, ইতিহাস সমর্থন, এলএস ইত্যাদির মতো সরল কমান্ড চালাতে সক্ষম হওয়ায় চারটি কীস্ট্রোকের চেয়ে আপনার অনেক বেশি ব্যয় হতে পারে অথবা আপনি এটির সাহায্যে সংরক্ষণ করেছেন।
মিথ্যা রায়ান

13

প্রাথমিক জিনিসগুলির জন্য, আপনি এটি করতে পারেন:

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>

সিটিআরএল + সি দিয়ে প্রস্থান করুন


2
শালীন ধারণা, তবে দুটি সমস্যা আছে। এক, ;এরপরে করণীয় bash: syntax error near unexpected token ; '`দ্বিতীয়ত, evalঅংশটি দুর্বলতার ঝুঁকিতে রয়েছে। উদাহরণস্বরূপ, আমি যদি status;cat /etc/passwdএই ছোট শেলটি টাইপ করি তবে কী ঘটে তা বিবেচনা করুন । নিরীহ উদাহরণ, তবে কী হতে পারে তার ধারণাটি আপনি পেয়ে যান while IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";doneYou আদর্শ নয়,
খানিকটা

@ অ্যাবিগাইল মজার :) কেন হ্যাঁ, শেল নিজেই সর্বাধিক সুরক্ষিত অ্যাপ্লিকেশন নয়। এমনকি একটি ফাইল ক্যাটিং একটি সমস্যা হতে পারে। যাইহোক, আমি মূলত যে বিষয়টিটি তৈরি করেছিলাম তা হ'ল আমরা মাইএসকিএল ইন্টারপ্রেটার শেল কমান্ড সম্পাদন করতে দেখি না, কমপক্ষে systemবা ছাড়াও বা \!শুরুতে নয়। অনুমানটি যেখানে এই "repl" gitকেবলমাত্র আদেশগুলি কার্যকর করে , এটি বাস্তবে এর চেয়ে আরও বেশি অনুমতি দেয়।
সের্গেই কোলোডিয়াজনি

@ অবিগাইল আমি ভয় পাই না, কারণ আমি জানি এটি কী করে। যাঁরা না করেন - এমন কিছু ভেঙে যেতে পারে যা তাদের উচিত নয়। এবং আবারও - eval কমান্ডগুলি চালনার জন্য সেরা ধারণা নয়, বিশেষত যখন ব্যবহারকারী-নিয়ন্ত্রিত ইনপুট জড়িত থাকে।
সের্গেই কোলোডিয়াজনি

টাইপো পরে স্থির do। ধন্যবাদ! পুনরায়: সুরক্ষা: এটি অবশ্যই পৃথক অ্যাপ্লিকেশন হিসাবে বিতরণ করার অর্থ নয়। .bash_profileআপনি যদি গিটটি টাইপ করতে না চান তবে কেবল আপনার মধ্যে দিন। আমি এটি "নিরাপত্তাহীন" হওয়ার বিষয়ে খুব বেশি চিন্তিত নই। আপনি যদি আপনার ব্যাশে এমন জিনিসগুলি পেস্ট করেন যা আপনি বুঝতে পারেন না (এই অনলাইনার স্ক্রিপ্ট সহ), আপনার খারাপ সময় হবে। আমি এটি পছন্দ করি কারণ এটি সহজ, লিখতে সহজ এবং সহজেই পড়তে সহজ, এবং উন্নত করা সহজ।
উমুর কনটাকা

2

আমি যখন কোনেমুর সাথে উইন্ডোজ 7 ব্যবহার করেছি, আমি নিম্নলিখিতটি আমার ডিভ এনভায়রনমেন্ট স্টার্টআপ স্ক্রিপ্টে যুক্ত করেছি:

doskey g=git $*

এটির সাহায্যে আমি gটাইপ না করে কেবল কমান্ডটি ব্যবহার করতে পারি git। সর্বশেষে আমি উইন্ডোজ 10 এবং সোনমু দিয়ে চেষ্টা করেছি, এটি কার্যকর হয়নি, একটি বাগ আছে, আমি মনে করি, তবে এটি চেষ্টা করে দেখার মতো।


2

বন্ধনী সম্পাদক ব্যবহার করুন, আপনার কোড এবং গিট কমান্ড ব্যবহার করা সহজ, এতে অনেকগুলি বৈশিষ্ট্যও রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

উপরের ডান কোণায় দ্বিতীয় বাইনোকুলার আইকনটি এক্সটেনশানগুলি ইনস্টল করতে ব্যবহৃত হয়।

এখানে চিত্র বর্ণনা লিখুন

brackets gitউপরের চিত্রের মতো এক্সটেনশন অনুসন্ধান করুন এবং এটি ইনস্টল করুন।

এখানে চিত্র বর্ণনা লিখুন

উপরের ডানদিকে আবার চতুর্থ আইকন দেখাবে, সুতরাং কেবল ক্লিক করুন এবং উপরের চিত্রের মতো পরিবর্তনগুলি দেখুন।

আপনি যদি বন্ধনী ইনস্টল করতে চান তবে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install brackets

আরো তথ্যের জন্য, আপনি পড়তে পারেন: উবুন্টুতে বন্ধনী কোড এডিটর এবং Linux মিন্ট ইনস্টল করুন কিভাবে উপর Ubuntupit

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.