গিট সম্পর্কিত আমার নিম্নোক্ত সেটআপ রয়েছে:
- আর্চ লিনাক্স এবং ডিফল্ট গিট ক্লায়েন্ট চলমান একটি ছোট সার্ভার। নির্দিষ্ট ফাইলগুলিতে স্বয়ংক্রিয়ভাবে পরিবর্তন আনতে এবং তারপরে আমার গিথুব সংগ্রহস্থলে সেই পরিবর্তনগুলি ঠেকাতে আমার এই সেটআপটি রয়েছে।
- আমার উইন্ডোজ 8.1 পিসি সহ স্মার্টজিট ইনস্টল করা আছে। আমি মাঝেমধ্যে ফাইলগুলিতে পরিবর্তনগুলি করি যা আমি নিজে থেকে আমার গিথুব সংগ্রহস্থলে ম্যানুয়ালি চাপি।
আমার যে সমস্যাটি হচ্ছে তা হ'ল আমি যখন আমার উইন্ডোজ পিসিতে ফাইলগুলিতে কিছু পরিবর্তন করি তখন সেই পরিবর্তনগুলিকে ধাক্কা দিই, আমার আর্চ লিনাক্স সার্ভারটি দৃশ্যত দূরবর্তী সংগ্রহস্থলের পরিবর্তনের জন্য এটি চাপ দেওয়ার ক্ষমতা হারিয়ে ফেলে। আর্ক লিনাক্স ক্লায়েন্টটি উইন্ডোজ পিসির সাথে কিছু না ধাকালাকালীন সমস্যা ছাড়াই এটি স্বয়ংক্রিয় পরিবর্তনগুলি ধাক্কা দিতে সক্ষম। কিছু হওয়ার পরে কিছু ভেঙে যায়। এই সমস্যার সমাধানের একমাত্র উপায়টি হ'ল আমার আর্চ লিনাক্স সার্ভারের স্থানীয় সংগ্রহস্থল মুছে ফেলা এবং তারপরে রিমোট থেকে টেনে একটি নতুন স্থানীয় সংগ্রহশালা তৈরি করা।
আমি কোনও পরিবর্তন করার আগে দূরবর্তী সংগ্রহস্থল থেকে টানতে এবং আনতে আর্ক লিনাক্স ক্লায়েন্টকে স্ক্রিপ্ট করেছি এবং আমার পিসিতে পরিবর্তনগুলি করার সময় আমি একই কাজ করি।
এটি কেন ঘটছে এবং ভবিষ্যতে এই সমস্যাটি রোধ করতে আমি কী করতে পারি তা বুঝতে দয়া করে কেউ আমাকে সহায়তা করতে পারেন? সাহায্য ব্যাপকভাবে প্রশংসা করা হবে।
আমি আমার আর্চ লিনাক্স সার্ভারে স্ক্রিপ্টগুলি এখানে ব্যবহার করছি:
মূল স্ক্রিপ্ট:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
# Test if an internet connection is present
ping -c 3 google.com > /dev/null 2> /dev/null
if [ $? != 0 ]; then
exit 1
fi
# Git requires that the working directory be the repository I am working with
cd /home/git-user/repositories/xjdhdr-random-code
# Update local repository to ensure no conflicts exist before I make changes
/home/git-user/bin/expect-gitpull.sh
# snip: Everything between these two commands basically make a lot of changes to a lot of text files. Probably has nothing to do with Git or my problem.
# Commit changes to remote repository.
cd /home/git-user/repositories/xjdhdr-random-code
git add -A -f --ignore-errors --
git commit -m "Automatic commit of machine generated changes to repository" --no-edit --
/home/git-user/bin/expect-gitpush.sh
exit 0
/home/git-user/bin/expect-gitpull.sh
#!/bin/expect
set password {*don't need anyone to see my passphrase*}
cd /home/git-user/repositories/xjdhdr-random-code
spawn git pull origin
expect "Enter passphrase for key '/home/git-user/.ssh/id_rsa':"
send -- "$password\r"
send -- "\r"
expect "%PROMPT%"
spawn git fetch -p origin
expect "Enter passphrase for key '/home/git-user/.ssh/id_rsa':"
send -- "$password\r"
send -- "\r"
expect "%PROMPT%"
/home/git-user/bin/expect-gitpush.sh
#!/bin/expect
set password {*ditto*}
cd /home/git-user/repositories/xjdhdr-random-code
spawn git push --recurse-submodules=check
expect "Enter passphrase for key '/home/git-user/.ssh/id_rsa':"
send -- "$password\r"
send -- "\r"
expect "%PROMPT%"