হেরোকু / মাস্টারের কাছে স্থানীয় স্থানীয় গিট শাখাগুলিকে কীভাবে ঠেলা যায়


402

হিরোকুর সব শাখা উপেক্ষা করার নীতি আছে 'মাস্টার' ছাড়াও।

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

Http://progit.org/book/ch9-5.html এর "পুশিং রেফস্পেকস" বিভাগটি পড়ে আমি কী পেয়েছি তা হ'ল

গিট পুশ -ফ হের্কু স্থানীয়-বিষয়-শাখা: রেফ / হেড / মাস্টার

আমি যা চাই তা হ'ল এটি একটি কনফিগারেশন ফাইলে সেট আপ করার একটি উপায় যাতে "গিট পুশ হিরকু" সর্বদা উপরেরটি করে, স্থানীয়-বিষয়-শাখাকে আমার বর্তমান শাখা যা কিছু হয় তার নাম দিয়ে। যদি কেউ এটি কীভাবে সম্পাদন করতে জানেন তবে দয়া করে আমাকে জানান!

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

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

এই কাজ করবে?

[দূরবর্তী "হিরকু"]
    url = git@heroku.com: my-app.git
    চাপ = + রেফার্স / মাথা / *: রেফার্স / হেডস / মাস্টার

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

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

পাদটীকা: এই প্রশ্নটির অনুরূপ, তবে হিরোকুর সাথে শাখা কৌশল ব্যবহার করে গুড গিট স্থাপনার মতো নয় ?


1
বর্তমানে সর্বাধিক ভোট দেওয়া উত্তর হ'ল এটি করার অহঙ্কারী পদ্ধতি (এবং ইমো আসল সঠিক উত্তর)
সেলাালী অ্যাডোবর

রেফস্পেকগুলি পুশ করার বিষয়ে একটি বিকল্প https রিসোর্স: রিফস্পেকগুলি পুশ করার বিষয়ে গিট স্কিম ডকুমেন্টেশন
ডিলান ল্যান্ড্রি

উত্তর:


131

ওয়াইল্ডকার্ড ব্যবহার করার সময়, এটি রেফস্পেকের উভয় পাশে উপস্থিত থাকতে হয়েছিল, সুতরাং +refs/heads/*:refs/heads/masterকাজ করবে না। তবে আপনি ব্যবহার করতে পারেন +HEAD:refs/heads/master:

git config remote.heroku.push +HEAD:refs/heads/master

এছাড়াও, আপনি গিট পুশ দিয়ে সরাসরি এটি করতে পারেন :

git push heroku +HEAD:master
git push -f heroku HEAD:master

4
এই দুটি কমান্ডের মধ্যে পার্থক্য কি বা আমাদের উভয়ই পালন করতে হবে
সাদ মাসউদ

2
@ সাদমাসুদ: git pushকমান্ডের শেষ অবধি তারা একই কাজ করে। দেখুন git push --helpঅর্থ জন্য -fবিকল্প এবং +refspec হবে।
ক্রিস জনসন

4
@ ক্রিস জনসন: আপনি দয়া করে আমাদের এখানে বলছেন আরটিএফএমিংয়ের পরিবর্তে -ফ পরামিতিগুলির অর্থ কী?
এএইচএইচ

@AHH -fঘোরা বল । এটি জাসার উত্তর নিয়ে আমার পক্ষে কাজ করেছিল ।
মিঃ তাও

@ ক্রিস জনসন: পুরো ইতিহাসের চেয়ে কেবলমাত্র হেডই অ্যাপটির সাম্প্রতিকতম প্রকাশের দিকে এগিয়ে যেতে ব্যবহৃত হয়েছিল?
ক্যামেরন উইলবি

1566

Https://devcenter.heroku.com/articles/git#deploying-code দেখুন

$ git push heroku yourbranch:master

24
একটি -f বল প্রয়োজন হতে পারে।
স্কট স্টাফোর্ড

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

3
@ ডেভিমিহান এটি এখনও কাজ করে। আপনি git push :masterযা করার চেষ্টা করছেন যা মাস্টার শাখাটিকে কোনও কিছুই দিয়ে ওভাররাইট করে মুছে ফেলবে। এটি অন্য একটি শাখার সাথে ওভাররাইট করার চেয়ে আলাদা। হিরোকু সম্ভবত মাস্টার শাখা মোছা রোধ করার জন্য জায়গায় সুরক্ষার ব্যবস্থা আছে।
ডেনিস

এটি একটি দুর্দান্ত সমাধান
অজয় কুমার

2
@nxmohamad এটি না হয় যদি না আপনার শাখা মাস্টার শাখার পিছনে থাকে এবং আপনি হেরোকুতে বর্তমান কোডটি ওভাররাইড করতে চান না।
রিক্স

64
git push -f heroku local_branch_name:master

3
দেখুন, এটি ব্যবহার করে -fবা --force, এবং আপনি যখন চাপ দিন তখন আপনি কী করছেন তা নিশ্চিত হওয়া আপনার পক্ষে সর্বদা সেরা।
MiFiHiBye

@ টমাস-মাজুর এর জন্য কেন -f প্রয়োজন?
nxmohamad

হ্যাঁ আমাদের কয়েকটি ক্ষেত্রে প্রগতিশীল শাখাগুলির সাথে কাজ করার এবং হিরকুতে যা কিছু আছে তা প্রতিস্থাপন এবং কার্যকরী শাখার পরীক্ষা করার প্রয়োজন হতে পারে, দয়া করে আমাদের যদি পরীক্ষার আরও ভাল উপায় থাকে
ফাহাদ

এটি আমার কম্পিউটারে কাজ করে, উত্তরের জন্য ধন্যবাদ, আসলে এই সিনট্যাক্সটি কি সাধারণ গিথুব সংগ্রহস্থলে বৈধ?
লুক আরন

10

হেরোকু / মাস্টারের কাছে বিভিন্ন স্থানীয় গিট শাখাকে ঠেলে দেওয়ার সবচেয়ে নিরাপদ কমান্ড।

git push -f heroku branch_name:master

দ্রষ্টব্য: যদিও, আপনি -f ব্যবহার না করেই চাপ দিতে পারেন, অন্য বিকাশকারীদের পুশগুলির সাথে দ্বন্দ্ব এড়াতে -f (ফোর্স ফ্ল্যাগ) বাঞ্ছনীয়।


1
আপনি কি মনে করেন না আগে -f না করে করাই ভাল অনুশীলন? তবে যদি কোন্দল হয় তবে প্রথমে নিশ্চিত হয়ে নিন যে তাদের উপরে লেখা ঠিক আছে
nxmohamad

7

আমার জন্য, এটি কাজ করে,

git push -f heroku otherBranch:master

অন্যান্য বিকাশকারীদের পুশগুলির সাথে দ্বন্দ্ব এড়ানোর জন্য -f (বাহিনী পতাকা) সুপারিশ করা হয়। যেহেতু আপনি আপনার পুনর্বিবেচনা নিয়ন্ত্রণের জন্য গিট ব্যবহার করছেন না, তবে কেবল পরিবহণ হিসাবে, বলের পতাকা ব্যবহার করা একটি যুক্তিসঙ্গত অনুশীলন।

উত্স: - অফিকাল ডক্স


5

এছাড়াও মনে রাখবেন যে আপনি যদি গিট ফ্লো সিস্টেম ব্যবহার করে থাকেন এবং আপনার বৈশিষ্ট্য শাখা কল করা যেতে পারে

feature/mobile_additions

এবং একটি গিট দূরবর্তী স্টেজিংটো বলে, তারপরে হিরকুতে ঠেলাঠেলি করার আদেশ হবে command

git push stagingtwo feature/mobile_additions:master

4

আপনার হিরকু_সান পরীক্ষা করা উচিত , এটি এই সমস্যাটি বেশ সুন্দরভাবে সমাধান করে।

উদাহরণস্বরূপ, আপনি করতে পারেন:

git checkout BRANCH
rake qa deploy

এটি নতুন হেরোকু দৃষ্টান্তগুলি নতুন সার্ভারে একটি বিষয় শাখা মোতায়েন করা সহজ করে তোলে:

git checkout BRANCH
# edit config/heroku.yml with new app instance and shortname
rake shortname heroku:create deploy # auto creates deploys and migrates

এবং অবশ্যই আপনি যদি ঘন ঘন কিছু করেন তবে আপনি সহজ রকে কাজগুলি করতে পারেন।



1

হিরোকু ল্যাবগুলি এখন একটি গিথুব অ্যাড-অন সরবরাহ করে যা আপনাকে কোন শাখাটি ধাক্কা দিতে হবে তা নির্দিষ্ট করে দিন।

এই বিটা বৈশিষ্ট্যে হিরোকুর লেখা আপ দেখুন।

আপাতত আপনাকে বিটা পরীক্ষক হিসাবে সাইন আপ করতে হবে।


0

আমি মনে করি এটি

push = refs/heads/*:refs/heads/*

পরিবর্তে...

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