مشکل در branch های git

سلام دوستان
من توی گیت وقتی یه branch درست میکنم و داخل اون تغییراتی انجام میدم مثلا یه فایل جدید بسازم یا ویرایش کنم و …
بعد وقتی میرم روی branch مستر بدون ان که git merge کرده باشم تغییرات رو توی branch مستر نشون میده

احتمالن کامیت نکردید تغییرات رو قبل از اینکه checkout کنین به master

1 Like

مرسی مشکل حل شد
یه سوال همیشه اگه یه برنچ جدا ساختیم باید commit کنیم

بله وگرنه که فایده ای نداره. البته گاهی branch می سازن واسه اینکه مثلا حالت بک آپ داشته باشه برای یه برنچ دیگه

1 Like

ببخشید ولی هنوز هم پوشه ها رو دنبال نمکنه فقط تغییرات داخل فایل ها که از قبل وجود داشتن رو دنبال میکنه

من توی یه ویدیو دیدم اگه برنچ رو تغییر بدی کل فایل های اون برنچ که توی مستر نبودن هم مخفی میشن
الان اگه من یه برنچ جدید درست کنم و توی اون کار کنم و باز برگردم به مستر دباره اون فایل ها همه هستن
در صورتی که باید نشون داده نمیشدن

ببینید سیستم به این شکله که یه برنچ میتونه هیچ ربطی به برنچ دیگه نداشته باشه و کاملا فایلهای خودشو داشته باشه. انگار یه پروژه‌ی دیگست.
به شرط اینکه فایلها کامیت بشن.

الآن هم حس میکنم اگه شما کلا از دایرکتوری پروژتون بیرون بیاید و یه دایرکتوری دیگه بسازید فقط برای تست کردن سیستم برنچینگ، راحتتر مساله رو درک کنید.
یه دایرکتوری کاملا خالی و یه git init که تبدیلش کنه به یه ریپو‌ی گیت. بعد فایل بسازید کامیت کنید، برنچ عوض کنید و تست کنید.

انجام دادم چندین بار ولی باز هم به همین صورته

اینجا من یه پروژه initialize میکنم. بعد یه فایل توش درست میکنم.
بعد برنچی به نام test میسازم و میرم داخلش و فایلم رو اونجا پاک میکنم و یه فایل جدید میسازم.
بعد برمیگردم به master و فایل قدیمی رو میبینم.
دوباره میرم به test و فایل جدید رو میبینم.

╭─[email protected] ~ 
╰─$ mkdir gittest

╭─[email protected] ~ 
╰─$ cd gittest 

╭─[email protected] ~/gittest 
╰─$ git init
Initialized empty Git repository in /home/pouya/gittest/.git/

╭─[email protected] ~/gittest ‹master› 
╰─$ echo 'a file in master' > myfile

╭─[email protected] ~/gittest ‹master*› 
╰─$ git add myfile 

╭─[email protected] ~/gittest ‹master*› 
╰─$ git commit -m 'initial commit'
[master (root-commit) 85c8552] initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 myfile

╭─[email protected] ~/gittest ‹master› 
╰─$ ls
myfile

╭─[email protected] ~/gittest ‹master› 
╰─$ git branch test    

╭─[email protected] ~/gittest ‹master› 
╰─$ git checkout test
Switched to branch 'test'

╭─[email protected] ~/gittest ‹test› 
╰─$ echo 'devheroes.club' > devfile

╭─[email protected] ~/gittest ‹test*› 
╰─$ git status
On branch test
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	deleted:    myfile

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	devfile

no changes added to commit (use "git add" and/or "git commit -a")

╭─[email protected] ~/gittest ‹test*› 
╰─$ git add devfile 

╭─[email protected] ~/gittest ‹test*› 
╰─$ git rm myfile
rm 'myfile'

╭─[email protected] ~/gittest ‹test*› 
╰─$ git status
On branch test
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	new file:   devfile
	deleted:    myfile


╭─[email protected] ~/gittest ‹test*› 
╰─$ git commit -m 'testbranch works'
[test 5ff95f1] testbranch works
 2 files changed, 1 insertion(+), 1 deletion(-)
 create mode 100644 devfile
 delete mode 100644 myfile

╭─[email protected] ~/gittest ‹test› 
╰─$ git checkout master
Switched to branch 'master'

╭─[email protected] ~/gittest ‹master› 
╰─$ ls
myfile

╭─[email protected] ~/gittest ‹master› 
╰─$ git checkout test
Switched to branch 'test'

╭─[email protected] ~/gittest ‹test› 
╰─$ ls
devfile
1 Like