সাইগউইন / গিট বিচিত্র টার্মিনাল ইস্যু


16

ঠিক আছে, এটি অদ্ভুত। প্রথমে, এটি সাইগউইনের সেটআপ.এক্সে থেকে টানা টানা টু ডেট সাইগউইনের সাথে চলছে int আমি zsh চালাচ্ছি।

$ git clone https://<user>@<domain>/<repository>/ ~/src/project/dev
Initialized empty Git repository in /cygdrive/c/src/project/dev/.git/
Password: <actual password in plain text appears>
# Nothing happens...
^C
$ <password text that I just typed>
zsh: command not found: <same password text>

এখানে কি হচ্ছে? এটি কি টার্মিনাল সমস্যা, শেল সমস্যা, গিট সমস্যা, বা সাইগউইন সমস্যা?

আপডেট: হ্যাঁ, আমি সাইগউইন গিট সংস্করণটি চালাচ্ছি, উইন্ডোজ সংস্করণটি নয়:

$ which git
/usr/bin/git
$ git --version
git version 1.7.1
$ /cygdrive/c/Program\ Files\ \(x86\)/Git/bin/git.exe --version
git version 1.7.0.2.msysgit.0

1
আমি একটি টার্মিনাল সমস্যা অনুমান করছি। আপনার পাসওয়ার্ডটি উপস্থিত হওয়ার বিষয়টি বোঝায় যে টার্মিনালটি সঠিকভাবে নিঃশব্দ মোডে রাখা হচ্ছে না (যেখানে এটি আপনার টাইপ করা অক্ষরগুলি দেখায় না) এবং আপনি আঘাত করার পরে পাসওয়ার্ডের পাঠ্য আবার উপস্থিত হয় তা ^Cবোঝায় যে অক্ষরগুলি অদৃশ্য নয় ' গিট প্রক্রিয়া স্টিডিনে প্রেরণ করা। তবে নির্দিষ্ট সমস্যাটি কী হতে পারে তা আমি জানি না।
ডেভিড জেড

ক্লুটির জন্য ধন্যবাদ - আমি এটি পেরিয়ে এসেছি: কোড. google.com/p/mintty/issues/detail?id=56 - তবে পাইথন এক্সিকিউটেবলের মতো ইন্টারেক্টিভ মোডে গিট দেওয়ার কোনও উপায় নেই ...
খালি

1
আপনি কি নিশ্চিত যে সাইগউইনের সংস্করণের গিটটি চালু করছেন? মিন্টে ইস্যু 56 শুধুমাত্র দেশীয় উইন্ডোজ প্রোগ্রামগুলিতে প্রয়োগ হয়।
ak2

আপনি কি এই সমস্যার সমাধান খুঁজে পেয়েছেন?
পলডু

উত্তর:


9

ঠিক আছে, আমি মনে করি আমি একটি সুনির্দিষ্ট সমাধান পেয়েছি।

সমস্যাটি হ'ল, ব্যবহৃত টার্মিনালটি নির্বিশেষে (পুটসিগ, মিন্টি, সেমিডি.এক্সই), ডিফল্টরূপে গিট আরও ভাল কনফিগার বিকল্পের অভাবে "সাধারণ পাসওয়ার্ড প্রম্পট" ব্যবহার করার চেষ্টা করে (যেমন আপনি বর্ণনাতে পড়তে পারেন core.askpass কনফিগারেশন বিকল্প )।

সাধারণ পাসওয়ার্ড প্রম্পট দৃশ্যত কেবল বাস্তব ইউনিক্সে কাজ করে, তবে সাইগউইনে নয়।

সমাধানটি হ'ল উইন্ডোজের জন্য একটি এসএসএইচ_এএসকেপিএএসএস সামঞ্জস্যপূর্ণ প্রোগ্রাম ইনস্টল করা এবং এটি ব্যবহারের জন্য গিটকে কনফিগার করা।

আমি যা করেছি তা হ'ল:

  1. আনপ্যাক করে সিটিতে অনুলিপি করে উইন-এসএস-অ্যাসপাস অ্যাপ্লিকেশন ইনস্টল করুন : \
  2. Win-ssh-Askpass দ্বারা প্রয়োজনীয় বোরল্যান্ড ডেল্ফি 5 রানটাইম ডাউনলোড এবং ইনস্টল করুন (আজকাল আসা শক্ত, তবে http://www.satsignal.eu/software/runtime.html এ একটি খুঁজে পেয়েছেন )
  3. কনফিগার গীত জয়-SSH-askpass ব্যবহার করে পাসওয়ার্ড প্রাপ্ত: git config --global core.askpass "C:/win_ssh_askpass.exe"। মনে রাখবেন যে EXE ফাইলটির নামে আন্ডারস্কোর রয়েছে, বিয়োগ চিহ্ন নয়।
  4. আপনার লগইন সর্বদা ইউআরএল ( https://<user>@<domain>/<repository>) এ রাখার কথা মনে রাখবেন । অন্যথায়, গিট অনুরূপ পাসপাস ইউটিলিটি ব্যবহার করে পাসওয়ার্ড জিজ্ঞাসার আগে লগইন জিজ্ঞাসা করবে। আপনি অজান্তেই লগইন হিসাবে নিজের পাসওয়ার্ডটি ইনপুট করতে পারেন যা ওয়েবসারকে পাঠানো হবে এবং এর অ্যাক্সেস লগটিতে সাধারণ পাঠ্য হিসাবে লগ ইন করা হবে!

এখন গিট একটি মার্জিত জিইউআই উইন্ডো ব্যবহার করে পাসওয়ার্ড চেয়েছে এবং ব্যবহৃত টার্মিনাল নির্বিশেষে কাজ করে :)


ধন্যবাদ, এলোমেলোভাবে চালান, তবে রান করুন :) আমি জানি না কেন গিট প্রত্যাশার মতো চলবে না। subversion এটা ঠিক আছে।
20:58

1
আমি কেবল নিম্নলিখিতটি চালিয়েছি এবং এটি একটি গুইকে পপ করেছে: গিট কনফিগারেশন - গ্লোবাল কোর.অ্যাস্কপাস "গিট-গুই - অ্যাসপাস" ক্লোন
ডেরেক গ্রেয়ার

7

আমি একই সমস্যাটি অভিজ্ঞতা পেয়েছি - তবে আমার ক্ষেত্রে আমি সাইগউইন সার্ভারে এসএসএইচ থাকি তাই সম্ভবত একটি উইন 32 জিইআইআই জিজ্ঞাসা কাজ করবে না।

পরিবর্তে, আমি জিজ্ঞাসাটি করতে এই সহজ স্ক্রিপ্টটি লিখেছিলাম। আমি যদিও এটি টিটিআই ডিভাইসটি নিয়মিত প্রম্পটগুলি থেকে ব্যবহার করতে পারি তবে এটি /bin/tty.exeকোনও অজানা কারণে কাজ করে না (নিজেকে নির্দ্বিধায় tt পেতে বা টিটিটি পেতে অন্য কোনও সমাধানের সন্ধান করুন, সম্ভবত আমি এটি কোনওভাবেই ভুল পেয়েছি )।

/bin/askpass.sh:

#!/bin/bash

TTY=$SSH_TTY
[ -c "$TTY" -a -r "$TTY" -a -w "$TTY" ] \
  || { echo "Failed to open device \`$TTY'!"; exit 1; }
exec <$TTY

echo -n "$@" >$TTY
read -s P
echo >$TTY

echo $P

নিশ্চিত করুন যে এই স্ক্রিপ্টটি কার্যকর হয়েছে এবং এটি আপনার গিটের কোর.অ্যাস্কপাস সেটিংস হিসাবে ব্যবহার করুন। যেহেতু এই স্ক্রিপ্টটি $ SSH_TTY ভেরিয়েবলের উপর নির্ভর করে এটি সাধারণত কেবল এসএসএইচ থেকে কাজ করবে। তবে আপনি যদি সেট না করে .bashrcবা সেট না করে $ SSH_TTY সেট করতে .bash_profileপারেন; এইভাবে এটি কোনও কনসোল থেকেও কাজ করা উচিত। আপনার আরসি স্ক্রিপ্টের নিম্নলিখিত লাইনটি এটি করা উচিত:

[ -z "$SSH_TTY" ] && export SSH_TTY=$(/bin/tty.exe)

আমি এই সমাধানটি নিশ্চিত করতে পারি, খুব ভাল কাজ করে।
স্ক্লামার

এটি আমার জন্যও বেশ ভাল কাজ করেছে। যাইহোক, এটি দৃশ্যমান হওয়ার জন্য আমাকে "খুলতে ব্যর্থ ..." বার্তায় একটি পুনর্নির্দেশ (1> & 2) যোগ করতে হয়েছিল।
এরিক

2

উপরের সমাধানগুলি আমার পক্ষে কাজ করে না, তবে আমি অন্য একটি খুঁজে পেয়েছি।

আপনার ssh এজেন্ট চালাতে হবে

কেবল ~ / .bashrc এ যুক্ত করুন এবং কনসোলটি পুনরায় আরম্ভ করুন

SSH_ENV=$HOME/.ssh/environment



# start the ssh-agent

function start_agent {

    echo "Initializing new SSH agent..."

    # spawn ssh-agent

    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"

    echo succeeded

    chmod 600 "${SSH_ENV}"

    . "${SSH_ENV}" > /dev/null

    /usr/bin/ssh-add

}



if [ -f "${SSH_ENV}" ]; then

     . "${SSH_ENV}" > /dev/null

     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {

        start_agent;

    }

else

    start_agent;

fi

পিএস ক্রোম এবং অপেরা লাইনব্রেক ব্যবহার করে যা ব্যাশের সাথে সামঞ্জস্যপূর্ণ নয় - কেবল অনুলিপি পেস্টের জন্য অন্য একটি ব্রাউজার ব্যবহার করুন


1

&ইউআরএলে আপনার কোনও মেটাচ্যারাক্টর পাওয়া সম্ভব । এর ফলে গিটটি পটভূমিতে চলতে পারে এবং ইউনিক্স সিস্টেমে স্টিডিন থেকে পড়ার চেষ্টা করার সাথে সাথে এটি বন্ধ হয়ে যায়। এ ;লাইনের মধ্য দিয়ে আংশিকভাবে কমান্ডটিও শেষ করে দেয় এবং এর Ctrl-Cফলে বাকী রেখাটি (একটি পৃথক কমান্ড) বাতিল হয়ে যায়।

এটি আকর্ষণীয় যে আপনি gitরেপোটি /cygdrive/c/src/project/dev/.git/ব্যবহারের জন্য বলার পরেও এটির সূচনা করে ~/src/project/dev(যদি না আপনার বাড়ির ডিরেক্টরি কোনও অদ্ভুত জায়গায় থাকে)) এটি সুপারিশ করবে যে gitকমান্ডটি কমান্ড লাইনের বাকী অংশটি দেখতে পাচ্ছে না, যদি কোনও বিপথগামী &বা ;ইউআরএল থাকে তবে কি হবে ।

(আমি অনেকবার এই সমস্যাটি করেছি wget, যদিও এর সাথে নয় git))

git cloneঅন্য রেপো থেকে একটি চেষ্টা করুন , বা একই রেপো থেকে অন্য কোনও ট্রান্সপোর্ট ব্যবহার gitকরে সাধারণভাবে বা কেবল এই রেপোর জন্য গোলমাল হয়েছে কিনা তা দেখুন । আপনি ইউআরএল এর চারপাশে একক উদ্ধৃতি রাখার চেষ্টা করতে পারেন।


~/src/cygdrive/c/src( C:\src) এর একটি সিমিলিংক । &ইউআরএলে নেই no আমি একটি পাবলিক গিট সংগ্রহস্থল ক্লোন করার চেষ্টা করব, তবে সাধারণত তাদের পাসওয়ার্ড থাকবে না ...
ফাঁকা সেট

1

নিম্নলিখিত ইস্যুটি একবার দেখুন - আমি মোটামুটি নিশ্চিত এখন এটি উইন্ডোজের সাথে কেবল মিন্টির এবং আন্তঃব্যবহারের সীমাবদ্ধতা।

ইস্যু 56 - পুদিনা

আমারও মাইএসকিএল চালানোর সমস্যা ছিল এবং যেমনটি মিন্টি থেকে - তাই উত্তরটি হ'ল এটি একটি টার্মিনাল এমুলেশন সমস্যা।


1

প্রশ্নের উত্তর ইতিমধ্যে দেওয়া হয়েছিল ... আমি কীভাবে ঠিক করেছি তা যুক্ত করতে চাই:

উইন্ডোজ চেক করা Git Bash, আমি gitনিম্নলিখিত সেট দেখতে পারেSSH_ASKPASS

$ echo $SSH_ASKPASS
/mingw64/libexec/git-core/git-gui--askpass

সুতরাং, সাইগউইনে, আমি একই পরিবর্তনশীল যুক্ত করেছি .bashrc

# Unconditionally export SSH_ASKPASS
export SSH_ASKPASS="/mingw64/libexec/git-core/git-gui--askpass"

অথবা

# export SSH_ASKPASS only if git is installed
hash git 2>/dev/null && export SSH_ASKPASS="/mingw64/libexec/git-core/git-gui--askpass"

এটি করতে গিয়ে গিট গিট থেকে এসএসএইচ_এএসকেপাস খুলবে ... আমাকে কোনও অতিরিক্ত এসডাব্লু ইনস্টল করতে বা কোনও অতিরিক্ত স্ক্রিপ্ট তৈরি করতে হয়নি।

আশা করি এটি সাহায্য করতে পারে!


0

বহু বছর আগে আমার মনে আছে সাইগউইনের সিভিএস প্রমাণীকরণের সাথে কিছু সমস্যা হয়েছে ... আপনি সাইগউইনকে ডস বা ইউনিক্স স্টাইল লাইন এন্ডিংস (সিআরএলএফ বনাম কেবল এলএফ) দিয়ে ইনস্টল করেছেন কিনা তা করণীয় ছিল; এটি ইনস্টলার সংলাপের বিকল্পগুলির মধ্যে একটি। আপনি যদি ভুলটি বেছে নিয়ে থাকেন (আমার মনে হয় ডস সেই কাজ করেছিল যা কাজ করে) পাসওয়ার্ডটি ম্যাঙ্গেল হয়ে যায় বা কোনও উত্সাহী চরিত্র বা কিছু দিয়ে।

যাইহোক, অন্য বিকল্প চেষ্টা করে দেখুন।


0

আমি একই সমস্যা আছে, এবং, এই বিপরীত থ্রেড , সমস্যা সব সম্ভব টার্মিনাল মধ্যে Cygwin এলেবেলে ক্ষেত্রেও একই ঘটনা ঘটে - puttycyg, minttyএবং শাস্ত্রীয় উইন্ডোজ cmd.exe

আমি এখনও একটি সঠিক সমাধান খুঁজছি, তবে একটি কার্যকারিতা রয়েছে - যদিও এটি খুব অনিরাপদ, আপনি পাসওয়ার্ডটি সংগ্রহস্থল ইউআরএলে রাখার চেষ্টা করতে পারেন, যেমন:

git clone https://<user>:<password>@<domain>/<repository>/

কাজটি কি আপনার জন্য কাজ করে?


0

যদি আপনি প্রায়শই এটি ব্যবহার করেন এমন একটি সংগ্রহস্থল, তবে ~ / .netrc ফাইলটি তৈরি করা সবচেয়ে সহজ জিনিস

machine git.example.com
login yourlogin
password your password

স্পষ্টতই, আপনার ফাইলটিতে যথাযথভাবে কঠোর অনুমতি সেট করা উচিত।


কেন কেবল পরিবহন হিসাবে ssh ব্যবহার করবেন না?
ভনব্র্যান্ড

0

মন্তব্য # 2 তে কেবল একটি পরিমার্জন

এখানে একটি সাইগউইন এসএস-জিজ্ঞাসা-পাস (সরকারী) রয়েছে

কেবল তার.বিজেড 2 ডাউনলোড করুন এবং আপনার সাইগউইন ফোল্ডারে আনপ্যাক করুন। এটি বোরল্যান্ড ডেলফি রানটাইম ইনস্টল না করে কাজ করে।

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