15 نصيحة أساسية للعمل بفعالية كل يوم

مرحبًا ، اسمي سيرجييف سيرجي الملقب غوروغراي... أنا حاليًا مجتمع Mentor FrontEnd Community في ManyChat. يمكنك مشاهدة محاضراتي حول دورة الإصدار وقواعد العمل مع أنظمة التحكم في الإصدار في Yandex School of Interface Development (SRI).



غالبًا ما يُسأل عن الاختراقات أو أفضل الممارسات التي أستخدمها عند العمل مع مستودعات Git والمشروع.



هذا المنشور هو محاولة لشرح الإعدادات والتقنيات الأساسية التي أستخدمها كل يوم. لا تتظاهر الوصفات بأنها خبيرة ، ولكنها يمكن أن تساعد في إتقان النظافة اليومية للعمل مع المستودع.





1. استخدم طازجة



أفضل العمل في وحدة التحكم وستكون معظم الأوامر والنصائح الواردة في هذا المنشور حول عميل وحدة التحكم. هذا نوع من التوصية الأولى - استخدم عميل وحدة التحكم لعملك اليومي مع المستودع وقم بتحديثه بانتظام. يقدم عميل وحدة التحكم بشكل أساسي ميزات جديدة وإصلاحات للأخطاء.



> git --version
git version 2.27.0


2. ضبط الآلة



قم بإعداد بريد إلكتروني عام غير تابع للشركة الحالية. سيسمح لك ذلك بضبط التعريف لمستودعات مختلفة وعدم التفكير في الإعدادات الافتراضية ، وسيُظهر GitHub نشاطك حتى إذا قمت بتغيير مكان عملك.



> git config --global user.email "gurugray@yandex.ru"

> cd company_project
> git config user.email "gurugray@manychat.com"


vim' , :



> git config --global core.editor "code --wait"


3. autocomplete



, . , .



Git , shell, , — .



4.



(aliases) . - , ssh — , ( , ). — , , .



Git SVN, , "b" — .



> git config --global alias.st "status -sb"
> git config --global alias.co "checkout"
> git config --global alias.ci "commit -a"
> git config --global alias.b "branch"


5.



— , , . . Git :



> git log --oneline --graph --branches


, , --pretty=format::



> git log --graph --date=short --branches --pretty=format:'%C(yellow)%h%C(reset) %ad | %C(75)%s%C(reset) %C(yellow)%d%C(reset) [%an]'


6.



, git+ssh , http :



> git clone git@github.com:gurugray/gurugray


7.



«» ( , pull-request' ) upstream push' origin. , , ssh-, :



> git clone git://github.com/gurugray/gurugray -o upstream


8.



pull, . , , . , :



> git fetch --all
> git rebase my_feature upstream/master


9.



, , :



> git fetch --all
> git checkout -b my_feature upstream/master

> git branch -D master


10.



, --fixup=



> git commit -m "Feature A is done"
> ...
> git commit -m "Feature B is done"
> git commit --fixup=fe2f857


> git log --oneline
a5050e7 fixup! Feature A is done
633e33f Feature B is done
...
fe2f857 Feature A is done
cb5db88 Previous commit


11.



— , «» , :



> git config --global alias.fixlast "commit --all --amend --no-edit"


12.



rebase --autosquash --fixup , , guidline', pull-request' .



> git rebase -i --autosquash cb5db88
pick fe2f857 Feature A is done
fixup a5050e7 fixup! Feature A is done
pick 733e2ff Feature B is done


> git log --oneline
633e33f Feature B is done
...
5778cbb Feature A is done
cb5db88 Previous commit


13.



reset , - «» :



> git reset @~4
> git commit --all


14. push



, --force -f, :



> git push origin +feature


15.



reflog - — , :



> git reflog
> ...
> git reset --hard FOUND_HASH


, .



Git' , .




All Articles