আমি কীভাবে গিট স্ট্যাশ শেয়ার করতে পারি?


32

গিটে স্ট্যাশ ভাগ করার কোনও উপায় আছে কি?

আমি বেশ কয়েকটি মেশিনে কাজ করি এবং প্রায়শই আমার বর্তমান কাজের অবস্থা এক থেকে অন্যটিতে যেতে সক্ষম হতে চাই।

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

স্ট্যাশ দেওয়া হয়েছে, বাস্তবে, এর উপর ইতিমধ্যে কমিট করা একটি শাখা (স্পষ্টতই), আমি "প্রতিটি স্ট্যাশকে একটি শাখায় প্রতিশ্রুতিবদ্ধ করুন এবং তারপরে সেগুলি ভাগ করুন" এর ধারায় সমাধান খুঁজছি না - আমি ইতিমধ্যে অনেক পেয়েছি, অনেক, শাখা। অতএব আমি রেফস্পেক বা অনুরূপটি খুঁজছি যা আমি পুশ / টান নিয়ন্ত্রণ করতে ব্যবহার করতে পারি।

উত্তর:


26

স্ট্যাশ কেবলমাত্র stashবা refs/stash, যা আপনি একটি প্রত্যন্ত শাখায় ঠেলাতে পারেন:

git push origin stash@{2}:refs/heads/otherstash

গিট সরাসরি দিকে ঠেলাঠেলি করতে অস্বীকার করবে refs/stash। এছাড়াও, পুরো রিফলাগুলি পুশ করার কোনও উপায় বলে মনে হয় না , যেখানে পূর্ববর্তী স্ট্যাশগুলি সঞ্চিত রয়েছে।


6
git push origin $(for sha in $(git rev-list -g stash); do echo $sha:refs/heads/stash_$sha; done)সমস্ত স্ট্যাশগুলির জন্য সুন্দরভাবে করা উচিত; আরও দেখুন stackoverflow.com/a/5248758/85371
sehe

11

এটি git pushশাখাগুলি তৈরি করা এড়ানোর জন্য হিসাবে ততটা সংহত নয়, আমি ব্যবহার করি git stash show -p > change.patch(পরিবর্তনগুলি স্ট্যাশ করার পরে) বা এমনকি git diff --cached > change.patchআমি git apply change.patchপরবর্তী মেশিনে যে প্যাচটি ব্যবহার করি তা তৈরি করতে ।

কমপক্ষে এই সমাধানটির সাহায্যে, যদি আপনার বর্তমান কার্যক্ষম অবস্থায় অনেকগুলি ফাইল পরিবর্তন করা হয়, তবে সমস্ত কিছু একটি ডেটা ইউনিটে অন্তর্ভুক্ত।


হ্যাঁ কিন্তু কিভাবে ? git stash -p কেবল আমাকে প্রতিটি কুঁচকির সম্পর্কে ইন্টারেক্টিভভাবে জিজ্ঞাসা করে - তারপরে লম্বা রেখা ছুঁড়ে যা আমি বুঝতে পারি না। সেই "প্যাচ" কোথায় আমি আমার সাথে অন্য মেশিনে নিয়ে যেতে পারি? এবং গিট পার্থক্য কি - ক্যাশেড? এবং আপনি কীভাবে গিট প্রয়োগ করবেন? দয়া করে আপনি কি আরও কিছুটা বিস্তারিত বর্ণনা করতে পারেন?
মতি শ্নিয়র

আমি আমার উত্তরটি বিস্তারিত এবং সংশোধন করেছি
নিও

4

আপনি প্যাচ তৈরি করতে এবং এটি কারও কাছে প্রেরণ করতে পারেন। আপনার যা করতে হবে তা হ'ল এটি প্রয়োগ করা।

git diff >> file.diff

3
নোট করুন এটি কেবলমাত্র এমন অবজেক্টের জন্য কাজ করবে যা একটি ভিন্নতা উত্পন্ন করে; আউটপুটে "বাইনারি ফাইলগুলি পৃথক" থেকে সাবধান থাকুন।
Liam
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.