git download - "গিট রিমোট যোগ করুন..." এবং "গিট ধাক্কা মূল মাস্টার" কী?




github login (5)

git UNIX মত। বন্ধুত্বপূর্ণ কিন্তু তার বন্ধুদের সম্পর্কে picky। এটি একটি শেল পাইপলাইন হিসাবে শক্তিশালী এবং ব্যবহারকারী বান্ধব হিসাবে প্রায়।

বলা হচ্ছে, একবার আপনি তার আদর্শ এবং ধারণাগুলি বুঝতে পারলে, এটি একই বর্ণের স্বচ্ছতা যা আমি ইউএনইক্স কমান্ড লাইন সরঞ্জাম থেকে আশা করতে এসেছি। আপনি অনলাইন উপলব্ধ অনেক ভাল গিট টিউটোরিয়াল এক পড়তে কিছু সময় বন্ধ বিবেচনা করা উচিত। প্রো গিট বই শুরু করার জন্য একটি ভাল জায়গা।

আপনার প্রথম প্রশ্নের উত্তর দিতে।

  1. git remote add ...

    আপনি সম্ভবত জানেন, git একটি বিতরণ সংস্করণ নিয়ন্ত্রণ সিস্টেম। সর্বাধিক অপারেশন স্থানীয়ভাবে সম্পন্ন করা হয়। বাইরের বিশ্বের সাথে যোগাযোগ করতে, git remotes বলা হয় যা ব্যবহার করে। এটি আপনার স্থানীয় ডিস্কের একটির ব্যতীত অন্য কোনও সংগ্রহস্থল যা আপনি আপনার পরিবর্তনগুলি push পারেন (যাতে অন্য লোকেরা তাদের দেখতে পারে) বা pull (যাতে আপনি অন্য পরিবর্তনগুলি পেতে পারেন)। কমান্ড git remote add origin [email protected]:peter/first_app.git এ অবস্থিত একটি নতুন দূরবর্তী তথাকথিত origin তৈরি করে [email protected]:peter/first_app.git । একবার আপনি এটি করলে, আপনার push কমান্ডগুলিতে, আপনি পুরো URL টি টাইপ করার পরিবর্তে origin ধাক্কা দিতে পারেন।

  2. git push origin master

    এটি একটি কমান্ড যা বলে "স্থানীয় নামে পরিচিত স্থানীয় শাখায় রিমোট নামে origin "। একবার এটি কার্যকর করা হলে, আপনি যে সমস্ত উপাদানটি মূল সাথে সিঙ্ক্রোনাইজ করেছেন সেটি রিমোট রিপোজিটরিতে পাঠানো হবে এবং অন্য লোকেরা তাদের সেখানে দেখতে সক্ষম হবে।

এখন পরিবহন সম্পর্কে (অর্থাত্ কি git:// ) মানে। রিমোট রিপোজিটরি ইউআরএল অনেক ধরনের হতে পারে ( file:// , https:// ইত্যাদি)। গিট কেবল অনুমতি এবং স্টাফ যত্ন নিতে পরিবহন দ্বারা সরবরাহিত প্রমাণীকরণ প্রক্রিয়া উপর নির্ভর করে। এর অর্থ হল file:// ইউআরএলগুলির জন্য, এটি ইউনিক্স ফাইল অনুমতি ইত্যাদি থাকবে। git:// স্কিমটি নিজের অভ্যন্তরীণ ট্রান্সপোর্ট প্রোটোকলটি ব্যবহার করার জন্য গিটকে জিজ্ঞাসা করছে, যা প্রায় গিট পরিবর্তনের জন্য অপ্টিমাইজ করা হয়েছে। সঠিক ইউআরএল হিসাবে, এটি গীথ তার git সার্ভার সেট আপ করার উপায় হিসাবে এটি উপায়।

এখন verbosity। আপনি টাইপ করেছেন কমান্ড সাধারণ এক। এটি এমন কিছু বলা সম্ভব যা "এখানে master নামে শাখাটি দূরবর্তী কল bar foo নামক শাখাটির স্থানীয় আয়না"। গিট কথা বলতে, এই মানে যে master ট্র্যাক bar/foo । যখন আপনি প্রথমবার ক্লোন করবেন, তখন আপনি master নামক একটি শাখা পাবেন এবং origin মাস্টারের ট্র্যাকের জন্য মূল মাস্টার সেটের সাথে একটি দূরবর্তী নামক origin (যেখানে আপনি ক্লোন করেছেন) পাবেন। এটি একবার সেট আপ হয়ে গেলে, আপনি কেবল git push বলতে পারেন এবং এটি এটি করবে। লম্বা কমান্ডটি যদি আপনার প্রয়োজন হয় তবে উপলব্ধ (যেমন git push সরকারী পাবলিক git push পারে এবং git push review master আপনার দলের পর্যালোচনা কোড ব্যবহার করার জন্য পৃথক রিমোটে ধাক্কা দেওয়ার জন্য ব্যবহার করা যেতে পারে)। আপনি git branch কমান্ডের সেট --set-upstream বিকল্পটি ব্যবহার করে আপনার শাখাটি ট্র্যাকিং শাখা হিসাবে সেট করতে পারেন।

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

প্রায়শই, গিট এবং রেলগুলি ম্যাজিকের মত মনে হয় ... যেমন Rails 3 টিউটোরিয়াল বইয়ের প্রথম অধ্যায়ে , এটি গিট সম্পর্কে আলোচনা করে:

git remote add origin [email protected]:peter/first_app.git
git push origin master

এবং এটি বেশিরভাগই বলে যে তারা "কী কাজ করে" এবং তারা কীভাবে শাখা নিয়ে কথা বলতে শুরু করে। git remote add অনুসন্ধান করে দেখায় যে git remote add একটি "ছোট নাম" যোগ করা, যেমন origin , এবং এটি কোনও নামও হতে পারে যা একটি URL এ উপনামের মতো। এবং origin রিমোট রেপো পয়েন্ট যেখানে স্বাভাবিক পথ। ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes "রিমোট রেজোজিটরিগুলি যোগ করা" এর অধীনে রেমোটস)

তাহলে ইউআরএলটি কেন git://[email protected]/peter/first_app.git না git://[email protected]/peter/first_app.git তবে অন্যান্য সিনট্যাক্সে - এটি কোন সিনট্যাক্স? এটা কেন .git সঙ্গে শেষ করা .git ? আমি শেষে .git ব্যবহার না করার চেষ্টা করে এবং এটি খুব কাজ করে। যদি না। .git , এটা আর কি হতে পারে? মনে হচ্ছে [email protected] সার্ভারে একটি ইউজার একাউন্ট হতে পারে?

এছাড়াও, এটি git push origin master ব্যবহার করার জন্য কেন verbose হতে হবে? ডিফল্ট এবং মাস্টার হতে পারে না? আমি প্রথম বার, origin master প্রয়োজন বোধ করা হয়, কিন্তু একটি ছোট সম্পাদনা এবং কমিট পরে, তারপর git push সব প্রয়োজন হয় (কোন origin master প্রয়োজন)। কেউ কি যা ঘটছে তা জানেন কিছু বিস্তারিত দিতে পারেন?

কখনও কখনও এটি ব্যাখ্যা ব্যতীত অনেক জাদু অনুভব করে ... এবং কখনও কখনও এটি ব্যবহারকারী ব্যক্তিটি এতটাই আত্মবিশ্বাসী এবং যখন জিজ্ঞাসা করা হয়, কেন তা ব্যাখ্যা করা যায় না এবং "এটি যেভাবে হয়" এর মত প্রতিক্রিয়া জানাতে পারে। কখনও কখনও খুব বাস্তব এবং ব্যবহারিক। এটা ব্যবহারিক হতে খারাপ না, কিন্তু সম্ভবত কি ঘটছে তা জানার জন্য ব্যবহারিক নয়।


আপনি git ব্যবহার আপনি প্রোগ্রামার হতে পারে। যদি আপনি প্রোগ্রামার হন তবে আপনি কী ভেরিয়েবল বুঝতে পারেন!

একটি রিমোট রেপো যোগ করার জন্য সিনট্যাক্স একটি বর্ণন আছে।

git remote add origin <url_of_remote repository>

উদাহরণ:

git remote add origin [email protected]:peter/first_app.git

আমাদের কমান্ড বিচ্ছেদ করা যাক:

git রিমোটটি আপনার গিট রিপোজিটরি হোস্ট করার জন্য আপনার সেন্ট্রাল সার্ভারগুলি পরিচালনা করতে ব্যবহৃত হয়।

আপনি আপনার কেন্দ্রীয় সংগ্রহস্থল স্টাফ জন্য Github ব্যবহার করা হতে পারে। আমি আপনাকে একটি উদাহরণ দেব এবং গিট রিমোট যুক্ত কমান্ডটি ব্যাখ্যা করব

ধরুন আমি গিট রেপোজিটরির জন্য কেন্দ্রীয় সার্ভারগুলির জন্য গিথহব এবং বিটবકેટের সাথে কাজ করছি এবং আমার প্রথম-অ্যাপ প্রকল্পের জন্য উভয় ওয়েবসাইটে রিপোজিটরি তৈরি করেছি।

এখন আমি যদি এই গিট সার্ভারে আমার পরিবর্তনগুলি ধাক্কা দিতে চাই তবে আমাকে এই কেন্দ্রীয় সংগ্রহস্থলগুলিতে কীভাবে পৌঁছাতে হবে তা জানাতে হবে। তাই আমি এই যোগ করতে হবে,

GitHub জন্য

git remote add gh_origin https://github.com/user/first-app-git.git

এবং BitBucket জন্য

git remote add bb_origin https://[email protected]/user/first-app-git.git

আমি দুইটি ভেরিয়েবল ব্যবহার করেছি (যতদূর আমার কাছে তাদের ভেরিয়েবল কল করতে হয়) gh_origin ( github for gh) এবং bb_origin (BITBUCKET এর জন্য bb) শুধু আপনাকে ব্যাখ্যা করার জন্য আমরা আমাদের যেকোন মূল্যে কল করতে পারি।

এখন কিছু পরিবর্তন করার পরে আমাকে এই সমস্ত পরিবর্তন কেন্দ্রীয় সংগ্রহস্থলে পাঠাতে হবে (push) করতে হবে যাতে অন্য ব্যবহারকারীরা এই পরিবর্তনগুলি দেখতে পারেন। তাই আমি কল

GitHub যাও pushing

git push gh_origin master

BitBucket ধাক্কা

git push bb_origin master

gh_origin এর মান হল https://github.com/user/first-app-git.git এবং bb_origin https://[email protected]/user/first-app-git.git মান ধরে রেখেছে

এই দুটি ভেরিয়েবল আমার জীবন সহজ করা হয়

যেহেতু আমাকে আমার কোড পরিবর্তন পাঠাতে হবে, তাই আমাকে মনে রাখার পরিবর্তে এই শব্দটি ব্যবহার করতে বা টাইপ করতে হবে।

উদাহরণস্বরূপ, বেশিরভাগ সময় আপনি মূলত ছাড়া অন্য কিছু দেখতে পান না, যেমনটি বেশিরভাগ সময়ে আপনি কেবলমাত্র একটি কেন্দ্রীয় সংগ্রহস্থল যেমন গীথুব বা বিটবકેટের সাথে মোকাবিলা করবেন।


আপডেট: উল্লেখ্য যে বর্তমান গৃহীত উত্তরটি git push আচরণ সম্পর্কে একটি longair.net/blog/2011/02/27/… করে, যা কোনও মন্তব্যের সত্ত্বেও সংশোধন করা হয়নি।

কোন রিমোটগুলি আপনার সারাংশ - যেমন একটি সংগ্রহস্থলের URL এর ডাক নাম - সঠিক।

তাহলে ইউআরএলটি কেন git: //[email protected]/peter/first_app.git নয় তবে অন্য সিনট্যাক্সে - এটি কোন সিনট্যাক্স? এটা কেন গিট সঙ্গে শেষ করা আবশ্যক? আমি শেষে git ব্যবহার না করার চেষ্টা করে এবং এটি খুব কাজ করে। যদি না। গিট, এটা আর কি হতে পারে? জিট সার্ভারে ব্যবহারকারীর অ্যাকাউন্ট শুরু হওয়ার কথা মনে হচ্ছে?

আপনি উল্লেখ করেছেন যে দুটি URL গুলি নির্দেশ করে যে দুটি ভিন্ন পরিবহন প্রোটোকল ব্যবহার করা উচিত। git:// দিয়ে শুরু হওয়া একটি git:// git প্রোটোকলের জন্য, যা কেবলমাত্র কেবলমাত্র রিপোজিটরিগুলিতে কেবলমাত্র পঠনযোগ্য অ্যাক্সেসের জন্য ব্যবহৃত হয়। অন্য একটি, [email protected]:peter/first_app.git , এসএসএইচ-এর উপর একটি রিপোজিটোরির অ্যাক্সেস নির্দিষ্ট করার বিভিন্ন উপায়গুলির মধ্যে একটি - ডকুমেন্টেশনে বর্ণিত এই "স্কি-স্টাইল সিনট্যাক্স"। যে স্কি-স্টাইল সিনট্যাক্সে ব্যবহারকারীর git হ'ল GitHub ব্যবহারকারীদের সনাক্ত করার সাথে সম্পর্কিত আচরণের কারণে - ব্যবহারকারীর নামটি উপেক্ষা করা হয়, এবং ব্যবহারকারীটি এসএসএইচ কী-জুড়ি যা তারা প্রমাণীকরণ করতে ব্যবহার করে তা সনাক্ত করে।

git push origin master এর verbosity জন্য, আপনি লক্ষ্য করেছি যে প্রথম ধাক্কা পরে, আপনি শুধু তারপর git push করতে পারেন। এটি কঠিন-মনে-মনে রাখা-কিন্তু-সাধারণভাবে-সহায়ক সহায়ক ডিফল্টগুলির একটি সিরিজের কারণ :)

  • কোন দূরবর্তী উল্লেখ করা হয় না, বর্তমান শাখার জন্য দূরবর্তী কনফিগার করা (আপনার ক্ষেত্রে remote.master.url মধ্যে) ব্যবহার করা হয়। সেট আপ না করা হলে, origin ব্যবহার করা হয়।
  • যদি কোনও "রেফসপেক" না থাকে (উদাহরণস্বরূপ master , master:my-experiment ইত্যাদি) নির্দিষ্ট করা হয়, তারপরে রিমোটের শাখা হিসাবে একই নাম থাকা প্রতিটি স্থানীয় শাখাকে ধাক্কা দেওয়ার জন্য ডিফল্ট গিট করুন। আপনার যদি কেবলমাত্র আপনার রিপোজিটরি এবং রিমোট একের মধ্যে master নামে একটি শাখা থাকে তবে এটি আপনার master দূরবর্তী master ঠেলে দেওয়ার মতোই হবে।

ব্যক্তিগতভাবে, যেহেতু আমি অনেক বিষয় শাখার (এবং প্রায়শই বেশ কয়েকটি রিমোট) থাকে তাই আমি সর্বদা ফর্মটি ব্যবহার করি:

git push origin master

... ঘটনাক্রমে অন্যান্য শাখা ঠেলাঠেলি এড়ানোর জন্য।

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

আমার দৃষ্টিভঙ্গিটি হ'ল git , এটির লার্নিং বক্ররেখাটি একেবারেই মূল্যবান - অনেকগুলি শাখার সাথে কাজ করা, সহজেই মার্জ করা এবং বিভিন্ন সংস্থানগুলির মধ্যে তাদের চাপানো এবং টেনে আনার ফলে আপনি সিস্টেমের সাথে আত্মবিশ্বাসী হওয়ার পরেই এটি দুর্দান্ত উপকারী। এটা শুধু দু: খজনক যে:

  • Git জন্য প্রাথমিক ডকুমেন্টেশন নতুনcomers জন্য প্যারিস করা এত কঠিন। (যদিও আমি তর্কবিতর্ক করব যে যদি আপনি প্রায় কোনও জিট প্রশ্নের জন্য Google, সহায়ক টিউটোরিয়াল উপাদান (বা স্ট্যাক ওভারফ্লো উত্তর :)) আজকাল আসেন।)
  • গিটগুলিতে কিছু অদ্ভুত আচরণ রয়েছে যা এখন পরিবর্তন করা কঠিন কারণ অনেকগুলি স্ক্রিপ্ট তাদের উপর নির্ভর করতে পারে, কিন্তু এটি মানুষের বিভ্রান্তিকর।

  1. রিপোজিটরি নামটির শেষে .git শুধুমাত্র একটি কনভেনশন। সাধারণত, git সার্ভারের সংগ্রহস্থলগুলি project.git নামে ডিরেক্টরিগুলিতে রাখা হয়। শুধুমাত্র project নির্দিষ্ট করা হয় যখন git ক্লায়েন্ট এবং প্রোটোকল project .git জন্য পরীক্ষার দ্বারা এই কনভেনশন সম্মান।

  2. git://[email protected]/peter/first_app.git একটি বৈধ গিট url নয়। git repositories সনাক্ত করা এবং এখানে উল্লিখিত বিভিন্ন url স্কিমের মাধ্যমে অ্যাক্সেস করা যেতে পারে। [email protected]:peter/first_app.git সেই পৃষ্ঠায় উল্লিখিত ssh url।

  3. git নমনীয়। এটি আপনাকে কোনও সংগ্রহস্থলের প্রায় কোন শাখার বিরুদ্ধে আপনার স্থানীয় শাখাটি ট্র্যাক করতে দেয়। master (আপনার স্থানীয় ডিফল্ট শাখা) ট্র্যাকিং origin/master (রিমোট ডিফল্ট শাখা) একটি জনপ্রিয় পরিস্থিতি হলেও এটি সর্বজনীন নয়। অনেক বার আপনি যে করতে চান না হতে পারে। এই প্রথম git push তাই verbose হয়। এটি আপনি একটি git pull বা একটি git push না যখন স্থানীয় master শাখার সঙ্গে কি কি git বলে।

  4. git push এবং git pull জন্য ডিফল্ট বর্তমান শাখা এর দূরবর্তী সঙ্গে কাজ করতে হয়। এই মূল মাস্টার তুলনায় একটি ভাল ডিফল্ট। উপায় গিট ধাক্কা এই ব্যাখ্যা করা হয় here নির্ধারণ করে।

git মোটামুটি মার্জিত এবং বোধগম্য কিন্তু মাধ্যমে হেঁটে একটি শেখার বক্ররেখা আছে।


বিদ্যমান শাখা থেকে বন্ধ শাখা দ্বারা একটি নতুন শাখা তৈরি করতে

git checkout -b <new_branch>

এবং তারপর ব্যবহার করে রিপোজিটরি এই নতুন শাখা ধাক্কা

git push -u origin <new_branch>

এটি একটি নতুন তৈরি হওয়া দূরবর্তী শাখা origin/<new_branch> সমস্ত স্থানীয় origin/<new_branch> তৈরি করে এবং এটিকে ধাক্কা দেয়





git github