গিট পুশ মারাত্মক ব্যর্থ


24

আমি কোনওভাবে আমার কোড শাখার পুরো ডিরেক্টরিটি মুছে ফেলেছি। আমি একটি নতুন ক্লোন করেছি। এটি ঠেলাঠেলি ছাড়া কাজ করে worked

~/workspace/wtf (mybranch)]$ git push origin  mybranch 
error: Cannot access URL [my url], return code 22
fatal: git-http-push failed 

গিট টান কাজ করে, যদিও। আমি কীভাবে এটি ঠিক করতে পারি?

git  push 

1
দয়া করে এখানে এই ম্যানুয়ালটি পড়ুন এবং এর বিষয়টি লক্ষ্য করুন http.receivepack
এইচ এইচ

উত্তর:


33

আমি একটি নতুন কপির জন্য এসএসএসের পরিবর্তে https ব্যবহার করার ভুল করেছি। তখন থেকে আমি সংশোধন করেছি এবং প্রতিশ্রুতিবদ্ধ কিন্তু স্পষ্ট কারণের জন্য চাপ দিতে পারিনি।

পুনরুদ্ধার করতে, আমি সাধারণভাবে .git / কনফিগার থেকে বিভাগ [দূরবর্তী "উত্স"] পরিবর্তন করেছি

url = https://github.com/AIFDR/riab_core.git

থেকে

url = git@github.com: AIFDR / riab_core.git

তার পরে, আমি আবার ধাক্কা দিতে পারে।


2
অন্য কোনও প্রোটোকলে যাওয়ার দরকার নেই, নীচে আমার উত্তরটি পড়ুন যদি আপনি HTTP- র উপরে চাপ দিতে চান।
বেসিল একটি

1
তুলসির সাথে একমত হোন, কিছু কর্পোরেট পরিবেশে ফায়ারওয়াল ইত্যাদির মাধ্যমে সীমিত অ্যাক্সেস থাকা এগুলি অপ্রয়োজনীয় এবং অসম্ভব

... সমস্যাটি হচ্ছে git-http-push failed, আমি দেখতে পাচ্ছি যে অপ্টটি HTTP বা https, -1 এর মাধ্যমে জিনিসগুলি সেট আপ করার চেষ্টা করছে।
এইচ এইচ

14

কেবল গিট দিয়ে দ্রুত এইচটিটিপি ধাক্কা - ওয়েবডিএভি দরকার হয় না

গিট ১.6. since থেকে নতুন "স্মার্ট-http" সমর্থন। নতুন পদ্ধতিটি পুরো প্যাকটি একবারে সংক্রমণের অনুমতি দেয়, পৃথক ফাইল হিসাবে নয়।

আপনি একই স্থানে ব্রাউজযোগ্য URL সরবরাহ করতে গিটওয়েব ব্যবহার করতে পারেন use

দ্রষ্টব্য: অ্যাক্সেস অ্যাপাচি দ্বারা নিয়ন্ত্রিত হওয়ায় আপনি প্রতিটি সংগ্রহস্থলের সেটআপে যে কোনও আথ প্রয়োজনীয়তা (htaccess বা ldap, ইত্যাদি) যুক্ত করতে পারেন।

এই উত্তরটি ধরে নিয়েছে যে আপনি রিমোট সার্ভারের মালিক এবং HTTP সমর্থন যুক্ত / ঠিক করতে চান।

প্রথম: অ্যাপাচি লগগুলি পরীক্ষা করুন, সম্ভবত এটি অনুমতি অস্বীকার / ত্রুটি সনাক্ত করতে অক্ষম যখন অ্যাপাচি গিট-http-ব্যাকড সিজি স্ক্রিপ্টগুলি সম্পাদন করার চেষ্টা করে।

গিটে এইচটিটিপি সমর্থন যুক্ত করা হচ্ছে

কেবলমাত্র একটি নতুন git_support.conf ফাইল তৈরি করুন এবং এটি অ্যাপাচে অন্তর্ভুক্ত করুন (httpd.conf এ বিবৃতি অন্তর্ভুক্ত করুন)

#
#  Basic setup for git-http-backend
#

SetEnv GIT_PROJECT_ROOT /opt/git_repos
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER  #IMportant !!! This could be your problem if missing

<Directory /opt/git>  # both http_backend and gitweb should be somewhere under here
        AllowOverride None
        Options +ExecCGI -Includes  #Important! Lets apache execute the script!
        Order allow,deny
        Allow from all
</Directory>

# This pattern matches git operations and passes them to http-backend
ScriptAliasMatch \
        "(?x)^/git/(.*/(HEAD | \
                        info/refs | \
                        objects/(info/[^/]+ | \
                                 [0-9a-f]{2}/[0-9a-f]{38} | \
                                 pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
                        git-(upload|receive)-pack))$" \
        /opt/git/libexec/git-core/git-http-backend/$1

# Anything not matched above goes to displayable gitweb interface
ScriptAlias /git /opt/git/cgi-bin/gitweb.cgi/

ফলাফলটি ধাক্কা / টান দেওয়ার ক্ষমতা:

me@machine /tmp/eddies $ git pull
Already up-to-date.

me@machine /tmp/eddies $ touch changedFile

me@machine /tmp/eddies $ git add .

me@machine /tmp/eddies $ git commit -am"commiting change"
[master ca7f6ed] commiting change
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 changedFile

me@machine /tmp/eddies $ git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 239 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To http://mysecretdomain.com/git/eddies
   0f626a9..ca7f6ed  master -> master

এবং আপনি এই পরিবর্তনগুলি অনলাইনে ব্রাউজ করতে পারেন .. gitweb একটি ব্রাউজযোগ্য ইন্টারফেস সরবরাহ করে

সূত্র: http://repo.or.cz/w/alt-git.git?a=blob_plain ; f=gitweb / README


যখন আমি ব্যবহারকারীর সম্পর্কে গুরুত্বপূর্ণ লাইনটি চালিত করি, লাইন,, আমি পাই "SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI."- কেন?
এইচ এইচ

আমি অনুমান করব যে মানটি খালি, সুতরাং Setenv কেবল 0 টি আর্গুমেন্ট দেখে। যেহেতু অ্যাপাচি একটি পুনর্নির্দেশের নিয়ম ব্যবহার করে এটি সম্ভব REMOTE_USER খালি, সুতরাং আমরা REDIRECT_RMEOTE_USER কে ধরব। আপনি যদি ইতিমধ্যে RMEOTE_USER সংজ্ঞায়িত হয়ে থাকেন (বা বরং REDIRECT ব্যবহারকারী খালি থাকে) তবে আপনার নিয়োগটি alচ্ছিক করতে সক্ষম হবে। httpd.apache.org/docs/2.0/mod/mod_setenvif.html#setenvif

7

HTTP- র মাধ্যমে " গিট পুশ " সক্ষম করতে আপনাকে ওয়েব সার্ভারে ওয়েবডিএভি সক্ষম করতে হবে। অ্যাপাচি ওয়েবসারভারের জন্য এটি করতে, কনফিগারেশন ফাইলটি কেবল সম্পাদনা করুন:

vim /etc/httpd/conf/httpd.conf

তারপরে শুরু হওয়া লাইনের জন্য অনুসন্ধান করুন:

<Directory "/var/www/html">

এর ঠিক পরে নিম্নলিখিত লাইনটি যুক্ত করুন:

Dav On

নিশ্চিত হয়ে নিন যে আপনার নীচের লাইনটিও নিবন্ধহীন: httpd.conf এ:

LoadModule dav_fs_module modules/mod_dav_fs.so

তার পরে আপনি প্রস্তুত। অ্যাপাচি ওয়েবসারভারটি ব্যবহার করে পুনঃসূচনা করুন:

service httpd restart

এছাড়াও সার্ভারের সমস্ত গিট সংগ্রহস্থল ফাইলগুলি প্যাচ: এপাচি ব্যবহারকারী এবং গোষ্ঠী দ্বারা লিখিতযোগ্য করে তা নিশ্চিত করুন:

chown -R apache:apache /var/www/html/your_git_repository

অন্যথায়, সঠিক অনুমতিগুলি সেট করতে ব্যর্থ হওয়ার ফলে "গিট পুশ" সম্পাদন করার সময় "পিট ত্রুটি: কার্ল ফলাফল = 22, এইচটিটিপি কোড = 403" দেখা দেবে।

এখন আপনার ক্লায়েন্ট মেশিন থেকে কেবল একটি "গিট পুশ" করুন এবং সকলের কাজ করা উচিত।


মনে রাখবেন, যদি ব্যবহারকারীদের এই হার্ডল গত পাবেন, কিন্তু apcahe লগ একটি ত্রুটি দেখুন সম্পর্কে গ্রহণ প্যাক stackoverflow.com/questions/792611/...

2
এটি কাজ করবে, তবে ডিএভি দরকার হয় না , এবং আসলে স্মার্ট-এইচপি-র চেয়ে ধীর গতিতে কাজ করে।

4

আপনি HTTP- র মাধ্যমে ক্লোন করেছেন এমন কোনও সংগ্রহস্থলের দিকে ধাক্কা দিতে পারবেন না। আপনার এক ssh://বা এক git://প্রকারের ইউআরএলটি আপডেট করতে হবে ।


আমি একই ক্লোন কমান্ড ব্যবহার করেছি। আমি ভুল মুছে ফেলার আগে পর্যন্ত এটি কাজ করেছিল ....

তোমার সাথে কি আছে git remote -v?
মাইটি রাবার হাঁস

সম্পূর্ণ সত্য নয়। ডিএভি সক্ষম হয়েছে তা ধরে রেখে আপনি পুনরায় সংগ্রহস্থলগুলিতে ফিরে যেতে পারেন।

6
এটি ভুল। 1.6.6 যেহেতু গিট স্মার্ট HTTP টিপে সমর্থন করে এবং অ্যাপাচি এবং গিট-http-ব্যাকএন্ড ব্যবহার করে টান দেয়।

3

আপনার .git / কনফিগার ফাইলের নিম্নলিখিত বিভাগটি সম্পাদনা করুন:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://git.repository.url/repo.git

থেকে

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://username:password@git.repository.url/repo.git

তারপরে চেষ্টা করুন git push origin master

প্রয়োজনীয় হিসাবে অন্যান্য সংগ্রহস্থল URL গুলির জন্য আপনার কনফিগারেশন ফাইলগুলিতে প্রমাণীকরণের বিশদটি সম্পাদনা করুন এবং প্রয়োজনীয় শাখায় চাপ দিন।


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

git remote set-url origin ...পাশাপাশি কাজ করে।
ম্যাক্সিমিলিয়ান হিলস

1

গিট-http-ব্যাকেন্ড, ldap প্রমাণীকরণ কনফিগারেশনের সাথে পুশ অপারেশনে আমার একই সমস্যা ছিল।
অবশেষে আমি সমাধানটি খুঁজে পেয়েছি এবং এই সার্ভারফল্ট প্রশ্নে এটি বর্ণনা করেছি

হতে পারে এটি একই সমস্যাযুক্ত কাউকে সহায়তা করবে।


0

মহান

আমার অন্যান্য ত্রুটি ছিল তবে এটি কাজ করে!

আমি ব্যাখ্যা করার চেষ্টা:

  • অ্যাপাচি 2 এবং ওয়েবড্যাভ সহ একটি উবুন্টু সার্ভার ইনস্টল করুন
  • বিশদটির জন্য http://www.mabishu.com/blog/2011/02/09/setup-a-remote-git-repository- using- http- with- push- support- and- digest- auth/ দেখুন
  • ক্লায়েন্ট ক্লোন -> নিখুঁত!
  • কিছু পরিবর্তন....
  • ধাক্কা -> ব্যর্থ হয়েছে
  • সার্ভারে মালিক পরিবর্তন করুন
  • ত্রুটি "পুট ত্রুটি: কার্ল ফলাফল = 22, HTTP কোড = 403" চলে গেছে ..
  • এখন কেবল গিট-http-পুশ ব্যর্থ হয়েছে বলে
  • serverlog: Could not LOCK /path/to/www/gitproject/refs/heads/master due to a failed precondition (e.g. other locks)
  • আমি user1520409আইএসটি কাজ থেকে উত্তর ব্যবহার ।

কিন্তু পুশ বার্তায় পাঠ্য থেকে পাসওয়ার্ডটি কীভাবে আড়াল করবেন?


-1

আপনি যদি কোনও ভুল পাসওয়ার্ড প্রবেশ করান তবে এটিও ঘটতে পারে।


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