Bir GitHub ├žatal deposunu nas─▒l g├╝ncellerim?


Al─▒nan cevaba git


Ge├ženlerde bir proje ├Ânerdim ve birka├ž d├╝zeltme yapt─▒m. Daha sonra kabul edilen bir ├žekme iste─či olu┼čturdum.

Birka├ž g├╝n sonra ba┼čka bir kat─▒l─▒mc─▒ taraf─▒ndan ba┼čka bir de─či┼čiklik yap─▒ld─▒. Yani ├žatal─▒m bu de─či┼čikli─či i├žermiyor.

Bu de─či┼čikli─či ├žatal─▒ma nas─▒l alabilirim? Katk─▒da bulunmak i├žin daha fazla de─či┼čiklik yapt─▒─č─▒mda ├žatal─▒m─▒ silmem ve yeniden olu┼čturmam gerekir mi? Veya bir g├╝ncelleme butonu var m─▒?


3329









Cevap say─▒s─▒n─▒ say: 18






├çatall─▒ deponuzu yerel klonunuza, orijinal GitHub deposunu "uzak" olarak ekleyebilirsiniz. ("Uzaktan kumandalar", havuz URL'lerinin takma adlar─▒ gibidir - origin ├Ârne─čin, bir tanesidir.) Daha sonra, t├╝m ┼čubeleri bu yukar─▒ havza havuzundan alabilir ve yukar─▒ havza s├╝r├╝m├╝nde ├žal─▒┼čmaya devam etmek i├žin ├žal─▒┼čman─▒z─▒ yeniden olu┼čturabilirsiniz. Gibi g├Âr├╝nen komutlar a├ž─▒s─▒ndan:

 # Add the remote, call it "upstream":

git remote add upstream https://github.com/whoever/whatever.git

# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:

git fetch upstream

# Make sure that you're on your master branch:

git checkout master

# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:

git rebase upstream/master
 

Ana ┼čubenizin ge├žmi┼čini yeniden yazmak istemiyorsan─▒z (├Ârne─čin, di─čer insanlar onu klonlad─▒─č─▒ndan), son komutu ile de─či┼čtirmelisiniz git merge upstream/master . Bununla birlikte, m├╝mk├╝n oldu─ču kadar temiz olan daha fazla ├žekme iste─či yapmak i├žin, yeniden kazanmak daha iyi olabilir.


┼×ubenizi yeniden a├žt─▒ysan─▒z, GitHub'taki upstream/master kendi ├žatallanm─▒┼č deponuza itmek i├žin itmeyi zorlaman─▒z gerekebilir. Bunu ile yapars─▒n:

 git push -f origin master
 

Yeniden -f do─čduktan sonra ilk kez kullanman─▒z gerekir .


3655







May─▒s 2014'ten itibaren bir ├žatal do─črudan GitHub'dan g├╝ncellenebilir. Bu hala Eyl├╝l 2017 itibariyle ├žal─▒┼čmaktad─▒r, ancak kirli bir taahh├╝t ge├žmi┼čine yol a├žacakt─▒r.

  1. ├çatal─▒n─▒ GitHub'da a├ž.
  2. T─▒klay─▒n Pull Requests.
  3. T─▒klay─▒n New Pull Request. Varsay─▒lan olarak, GitHub orijinali ├žatal─▒n─▒zla kar┼č─▒la┼čt─▒racak ve herhangi bir de─či┼čiklik yapmam─▒┼čsan─▒z kar┼č─▒la┼čt─▒r─▒lacak bir ┼čey olmamal─▒d─▒r.
  4. Click switching the basebu ba─člant─▒y─▒ g├Âr├╝rseniz. Aksi takdirde, base forka├ž─▒l─▒r men├╝y├╝ ├žatal─▒n─▒za ve head forkyukar─▒ ak─▒┼č y├Ân├╝nde manuel olarak ayarlay─▒n . ┼×imdi GitHub ├žatal─▒n─▒z─▒ orijinalle kar┼č─▒la┼čt─▒racak ve en son de─či┼čiklikleri g├Ârmelisiniz.
    g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

  5. Create pull requestve ├žekme iste─činize tahmin edilebilir bir ad verin (├Ârne─čin, Update from original ).
  6. A┼ča─č─▒ya kayd─▒r─▒n Merge pull request, ancak hen├╝z hi├žbir ┼čeyi t─▒klatma.

┼×imdi ├╝├ž se├žene─činiz var, ancak her biri daha az net bir taahh├╝t ge├žmi┼čine yol a├žacak.

  1. Varsay─▒lan, ├žirkin bir birle┼čtirme taahh├╝d├╝ olu┼čturur.
  2. E─čer a├ž─▒l─▒r men├╝y├╝ t─▒klar ve "Squash ve birle┼čtir" i se├žerseniz, t├╝m araya giren taahh├╝tler bire b├Âl├╝n├╝r. Bu genellikle istemedi─činiz bir ┼čeydir.
  3. E─čer t─▒klarsan─▒z Rebase and merge, t├╝m taahh├╝tler sizinle "birlikte" yap─▒lacakt─▒r, orijinal PR'ler PR'nize ba─član─▒r ve GitHub g├Âr├╝nt├╝lenir This branch is X commits ahead, Y commits behind <original fork> .

Yani evet, GitHub web kullan─▒c─▒ aray├╝z├╝n├╝ kullanarak repo'nuzu yukar─▒ ak─▒┼č y├Ân├╝nde g├╝ncel tutabilirsiniz, ancak bunu yapmak sizin kesin ge├žmi┼činize uymaz. Stick komut sat─▒r─▒ yerine - bu kolay.


706







─░┼čte GitHub'─▒n ├çatal senkronizasyonu konusundaki resmi belgesi :

Çatal senkronizasyonu

Kurulum

Senkronize etmeden ├Ânce, giri┼č deposuna i┼čaret eden bir uzaktan kumanda eklemeniz gerekir. Bunu ilk ba┼čta ├žatalla yapt─▒─č─▒n─▒z zaman yapm─▒┼č olabilirsiniz.

İpucu: Çatalınızı senkronize etmek yalnızca deponun yerel kopyasını günceller; GitHub'taki deponuzu güncellemez.

 $ git remote -v
# List the current remotes
origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

$ git remote add upstream https://github.com/otheruser/repo.git
# Set a new remote

$ git remote -v
# Verify new remote
origin    https://github.com/user/repo.git (fetch)
origin    https://github.com/user/repo.git (push)
upstream  https://github.com/otheruser/repo.git (fetch)
upstream  https://github.com/otheruser/repo.git (push)
 

Senkronize ediliyor

Deponuzu yukar─▒ ak─▒┼č ile senkronize etmek i├žin iki ad─▒m gerekir: ├Ânce uzaktan kumandadan alman─▒z, ard─▒ndan istedi─činiz ┼čubeyi yerel ┼čubenizle birle┼čtirmeniz gerekir.

getiriliyor

Uzak havuzdan getirilmesi ┼čubelerini ve ilgili taahh├╝tlerini getirecektir. Bunlar yerel deponuzda ├Âzel ┼čubeler alt─▒nda depolan─▒r.

 $ git fetch upstream
# Grab the upstream remote's branches
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/otheruser/repo
 * [new branch]      master     -> upstream/master
 

┼×imdi, yukar─▒ havza ba┼č─▒ndaki usta ┼čubesini yerel a─č dal─▒na, yukar─▒ havza / ustas─▒na yerle┼čtirdik

 $ git branch -va
# List all local and remote-tracking branches
* master                  a422352 My local commit
  remotes/origin/HEAD     -> origin/master
  remotes/origin/master   a422352 My local commit
  remotes/upstream/master 5fdff0f Some upstream commit
 

birle┼čtirme

┼×imdi yukar─▒ havza havuzunu getirdi─čimize g├Âre, de─či┼čikliklerini yerel ┼čubemizle birle┼čtirmek istiyoruz. Bu, yerel ┼čubelerimizi kaybetmeden o ┼čubeyi giri┼č y├Ân├╝nde senkronize edecek.

 $ git checkout master
# Check out our local master branch
Switched to branch 'master'

$ git merge upstream/master
# Merge upstream's master into our own
Updating a422352..5fdff0f
Fast-forward
 README                    |    9 -------
 README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md
 

Yerel ┼čubenizde benzersiz bir taahh├╝t yoksa, git bunun yerine "h─▒zl─▒ ileri sarma" ger├žekle┼čtirir:

 $ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
 README.md                 |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
 

─░pucu: GitHub'dan ├╝zerinde depoyu g├╝ncellemek isterseniz talimatlar─▒ burada


428







├çatal─▒n─▒z─▒ ana deposundan bir tane daha ilerleten pek ├žok cevapla sona erer . Bu cevap , ├žatal─▒n─▒z─▒ ebeveynle ayn─▒ ┼čekilde yerine getirecek olan burada bulunan ad─▒mlar─▒ ├Âzetlemektedir .

  1. Dizini yerel deponuzla de─či┼čtirin.

    • E─čer de─čilseniz ana ┼čubeye ge├žin git checkout master
  2. ├ťst ├Â─čeyi uzak havuza ekle, git remote add upstream <repo-location>

  3. Konu git fetch upstream
  4. Konu git rebase upstream/master

    • Bu a┼čamada, yazarak neyin birle┼čtirilece─čini taahh├╝t etti─čini kontrol edersiniz. git status
  5. Konu git push origin master

Bu komutlar hakk─▒nda daha fazla bilgi i├žin 3. ad─▒ma bak─▒n .


93







Kas─▒m 2013ÔÇÖten bu yana GitHubÔÇÖa a├ž─▒k bir resmi ├Âzellik iste─či geldi; yerel bir ├žatal─▒ yukar─▒ ak─▒┼č ile senkronize tutmak i├žin ├žok basit ve sezgisel bir y├Ântem eklemelerini istedi:

https://github.com/isaacs/github/issues/121

Not: ├ľzellik iste─či resmi olmad─▒─č─▒ndan, bunun [email protected] gibi bir ├Âzellik i├žin deste─činizi eklemek ├╝zere ba─člant─▒ kurman─▒z da ├Ânerilir . Yukar─▒daki gayri resmi ├Âzellik talebi, bu uygulamaya uygulanan ilginin bir kan─▒t─▒ olarak kullan─▒labilir.


44







├ľns├Âz: ├çatal─▒ "k├Âkeni" ve ├žatall─▒ "deposunu" ak─▒nt─▒ya kar┼č─▒ ".

Zaten ├žatal─▒n─▒z─▒ bilgisayar─▒n─▒za b├Âyle bir komutla klonlad─▒─č─▒n─▒z─▒ varsayal─▒m:

 git clone [email protected]:your_name/project_name.git
cd project_name
 

Bu verilirse, bu s─▒rayla devam etmeniz gerekir:

  1. "Yukar─▒ ak─▒┼č" klonlanm─▒┼č havuzunuza ("ba┼člang─▒├ž") ekleyin:

     git remote add upstream [email protected]:original_author/project_name.git
     
  2. Taahh├╝tleri (ve ┼čubeleri) "yukar─▒ ak─▒┼č" dan al─▒n:

     git fetch upstream
     
  3. ├çatal─▒n─▒z─▒n "ana" koluna ("orijinli") ge├žin:

     git checkout master
     
  4. "Ana" ┼čubenizdeki de─či┼čiklikleri saklay─▒n:

     git stash
     
  5. De─či┼čiklikleri "giri┼č" in "ana" dal─▒ndan "men┼če" in "ana" dal─▒na d├Ân├╝┼čt├╝r├╝n:

     git merge upstream/master
     
  6. Varsa birle┼čtirme ├žat─▒┼čmalar─▒n─▒ ├ž├Âzme ve birle┼čtirme i┼čleminizi ger├žekle┼čtirme

     git commit -am "Merged from upstream"
     
  7. De─či┼čiklikleri ├žatal─▒n─▒za itin

     git push
     
  8. Yap─▒lm─▒┼č de─či┼čikliklerinizi (varsa) geri al─▒n

     git stash pop
     
  9. Sen bittin! Tebrikler!

GitHub ayr─▒ca bu konu i├žin talimatlar sa─člar: ├çatallar─▒n senkronize edilmesi


42







Benim gibi, hi├žbir zaman do─črudan ustaya hi├žbir ┼čey yapmazsan─▒z, ki ger├žekten yapmal─▒s─▒n─▒z, a┼ča─č─▒dakileri yapabilirsiniz.

├çatal─▒n─▒z─▒n yerel klonundan, yukar─▒ y├Ândeki uzaktan kumandan─▒z─▒ olu┼čturun. Bunu sadece bir kez yapman─▒z gerekir:

 git remote add upstream https://github.com/whoever/whatever.git
 

Sonra ne zaman yukar─▒ depo ana master ┼čubesine yeti┼čmek istedi─činizde:

 git checkout master
git pull upstream master
 

Asla kendin ├╝zerinde bir ┼čey yapmad─▒─č─▒n─▒ farz etmelisin zaten. ┼×imdi yerel efendinizi orijinal uzaktaki GitHub ├žatal─▒na itebilirsiniz. Ayr─▒ca, geli┼čtirme ┼čubenizi ┼čimdiki yerel efendinize yeniden y├╝kleyebilirsiniz.

─░lk giri┼č kurulumunu ve master checkout'u ge├žtikten sonra yapman─▒z gereken tek ┼čey, master'─▒n─▒z─▒ upstream ile senkronize etmek i├žin a┼ča─č─▒daki komutu ├žal─▒┼čt─▒rmakt─▒r: git pull upstream master .


41







Bu cevab─▒n tarihi itibariyle GitHub, web aray├╝z├╝nde bu ├Âzelli─če sahip de─čil ( ya da art─▒k s├Âylemeyece─čim mi? ). Ancak bunun [email protected] i├žin oyunuzu eklemenizi isteyebilirsiniz .

Bu arada, GitHub kullan─▒c─▒s─▒ bardiharborow bunu yapmak i├žin bir ara├ž yaratt─▒: https://upriver.github.io/

Kaynak burada: https://github.com/upriver/upriver.github.io


22







Windows i├žin GitHub kullan─▒yorsan─▒z, ┼čimdi ├žatallar─▒ g├╝ncellemek i├žin tek t─▒klamayla bir ├Âzelli─či var:

  1. Aray├╝zde depoyu se├žin.
  2. "Kullan─▒c─▒dan / ┼čubeden g├╝ncelle" d├╝─čmesini t─▒klay─▒n.

15







Asl─▒nda, taray─▒c─▒n─▒zda yukar─▒ y├Ândeki herhangi bir i┼člemden ├žatal─▒n─▒zda bir dal olu┼čturmak m├╝mk├╝nd├╝r:

  • A├ž─▒k https://github.com/<repo>/commits/<hash> , repo sizin ├žatal─▒n─▒z ise ve karma , yukar─▒ ak─▒┼č web aray├╝z├╝nde bulabilece─činiz kararl─▒l─▒k dolu. ├ľrne─čin, yazma zaman─▒n─▒ i┼čaret eden https://github.com/max630/linux/commits/0aa0313f9d576affd7747cc3f179feb097d28990 dosyas─▒n─▒ a├žabilirim linux master .
  • "A─ča├ž: ...." d├╝─čmesine t─▒klay─▒n.
  • Yeni dal─▒n ad─▒n─▒ yaz─▒n ve Enter


Resim tan─▒m─▒n─▒ buraya girin

Daha sonra o ┼čubeyi yerel klonunuza getirebilirsiniz ve d├╝zenlemeleri bu g├Ârevin ├╝zerine getirdi─činizde t├╝m bu verileri GitHub'a geri itmeniz gerekmez. Veya bu b├Âl├╝mdeki bir ┼čeyi de─či┼čtirmek i├žin web aray├╝z├╝n├╝ kullan─▒n.

Nas─▒l ├žal─▒┼č─▒r (bir tahmin, GitHub'─▒n tam olarak ne yapt─▒─č─▒n─▒ bilmiyorum): ├žatallar nesne depolamay─▒ payla┼č─▒r ve kullan─▒c─▒lar─▒n referanslar─▒n─▒ ay─▒rmak i├žin ad alanlar─▒n─▒ kullan─▒r. ├ľyleyse, ├žatal bi├žme s├╝resinde bulunmasalar bile, t├╝m sipari┼člerinize ├žatal ├╝zerinden eri┼čebilirsiniz.


9







A┼ča─č─▒daki ad─▒mlar─▒ izleyin. Onlar─▒ denedim ve bana yard─▒mc─▒ oldu.

┼×ubenize ├Âdeme yap─▒n

S├Âzdizimi: git branch yourDevelopmentBranch
├ľrnek: git checkout master

En son kodu almak i├žin kaynak depo ┼čubesini ├žekin

S├Âzdizimi: git pull https://github.com/tastejs/awesome-app-ideas master
├ľrnek: git pull https://github.com/ORIGINAL_OWNER/ORIGINAL_REPO.git BRANCH_NAME


8







Çatallı depolarımı bu satırda güncellerim:

 git pull https://github.com/forkuser/forkedrepo.git branch
 

Projenize ba┼čka bir uzak u├ž nokta eklemek istemiyorsan─▒z, buraya yaz─▒lan di─čer ├ž├Âz├╝mler gibi bunu kullan─▒n.


6







Bu cevab─▒n bir tamamlay─▒c─▒s─▒ olarak, klonlanm─▒┼č repomun ( k├Âkeni ) t├╝m uzak dallar─▒n─▒ tek seferde yukar─▒ ak─▒┼č dallar─▒ndan g├╝ncellemek i├žin bir yol ar─▒yordum . Ben b├Âyle yapt─▒m.

Bu , kaynak havuzunda ( ba┼člang─▒├ž noktas─▒n─▒n nereden al─▒nd─▒─č─▒) yukar─▒ y├Ândeki bir uzaktan i┼čaret├ži olu┼čturdu─čunuzu ve bununla e┼čitledi─činizi varsayar . git fetch upstream

O zaman ko┼č:

 for branch in $(git ls-remote --heads upstream|sed 's#^.*refs/heads/##'); do git push origin refs/remotes/upstream/$branch:refs/heads/$branch; done
 

Bu komutun ilk k─▒sm─▒, yukar─▒ ak─▒┼čtaki uzaktan depodaki t├╝m kafalar─▒ listeler ve SHA-1'i ve ard─▒ndan refs/heads/ dal ad─▒ ├Ânekini kald─▒r─▒r .

Sonra bu dallar─▒n her biri i├žin, bu nedenle yerel kopyas─▒n─▒ iter memba (uzaktan izleme ┼čube refs/remotes/upstream/<branch> do─črudan uzaktan dal─▒na yerel taraf─▒nda) k├Âkenli ( refs/heads/<branch> uzak taraf─▒nda).

Bu dal senkronizasyon komutlar─▒ndan herhangi biri iki nedenden biriyle ba┼čar─▒s─▒z olabilir: yukar─▒ ak─▒┼čtaki dal yeniden yaz─▒lm─▒┼čt─▒r veya bu daldaki taahh├╝tleri ├žatal─▒n─▒za ittiniz. ├çatal─▒n─▒zdaki kolla ilgili hi├žbir ┼čey yapmad─▒─č─▒n─▒z ilk durumda zorla itmek g├╝venlidir ( -f anahtar─▒n─▒ ekleyin ; ├Ârne─čin git push -f yukar─▒daki komutta). Di─čer durumda, ├žatal kolunuz farkl─▒la┼čt─▒─č─▒ndan bu normal bir durumdur ve taahh├╝tleriniz geri ak─▒┼ča al─▒nana kadar sync komutunun ├žal─▒┼čmas─▒n─▒ bekleyemezsiniz .


6







Android Studio art─▒k GitHub ├žatal depolar─▒yla ├žal─▒┼čmay─▒ ├Â─črendi (konsol komutuyla "yukar─▒ ak─▒┼č" uzak havuzu eklemeniz bile gerekmiyor).

Men├╝y├╝ a├ž VCS Ôćĺ Git

Ve son iki a├ž─▒l─▒r men├╝ ├Â─česine dikkat edin:

  • GitHub ├žatal─▒m─▒ yeniden a├ž

  • ├çekme ─░ste─či Olu┼čtur

Onlar─▒ dene. ─░lki yerel depoumu senkronize etmek i├žin kullan─▒yorum. Her neyse, ana Git deposundaki ("yukar─▒ ak─▒┼č") ┼čubeleri, "GitHub ├žatal─▒m─▒ yeniden olu┼čtur" u t─▒klad─▒ktan sonra Android Studio'da eri┼čilebilir olacak ve onlarla kolayca ├žal─▒┼čabileceksiniz.

("Git entegrasyonu" ve "GitHub" eklentileri ile Android Studio 3.0 kullan─▒yorum.)


Resim tan─▒m─▒n─▒ buraya girin


3







├çatall─▒ havuzunuzu klonlad─▒─č─▒n─▒zda, klonunuzun bulundu─ču dizin yoluna ve Git Bash Terminalinizdeki birka├ž sat─▒ra gidin.

 $ cd project-name

$ git remote add upstream https://github.com/user-name/project-name.git
 # Adding the upstream -> the main repo with which you wanna sync

$ git remote -v # you will see the upstream here 

$ git checkout master # see if you are already on master branch

$ git fetch upstream
 

Ve i┼čte gitmek i├žin iyi birisin. Ana havuzdaki t├╝m g├╝ncellenmi┼č de─či┼čiklikler ├žatal deponuza g├Ânderilir.

Bir projede g├╝ncel kalmak i├žin "fetch" komutu vazge├žilmezdir: sadece bir "git fetch" yaparken meslekta┼člar─▒n─▒z─▒n uzak sunucuya g├Ânderdi─či de─či┼čiklikler hakk─▒nda bilgilendirileceksiniz.

Daha fazla bilgi i├žin buray─▒ ziyaret edebilirsiniz.


3







Ak─▒┼č y├Ân├╝n├╝z├╝ ayarlarsan─▒z. Kontrol edin git remote -v , o zaman bu yeterli olacakt─▒r.

 git fetch upstream
git checkout master
git merge --no-edit upstream/master
git push
 

2







Bu, deponuzun boyutuna ve nas─▒l ├žatallad─▒─č─▒n─▒za ba─čl─▒d─▒r.

Olduk├ža b├╝y├╝k bir depo ise, onu ├Âzel bir ┼čekilde y├Ânetmek isteyebilirsiniz (├Ârne─čin, tarihin d├╝┼čmesi gibi). Temel olarak mevcut ve yukar─▒ ak─▒┼č s├╝r├╝mleri aras─▒nda farklar elde edebilir, bunlar─▒ taahh├╝t edebilir ve ard─▒ndan kirazlar─▒n ustal─▒kla tekrar se├žilmesini sa─člayabilirsiniz.

Okumay─▒ deneyin bunu . B├╝y├╝k Git depolar─▒n─▒n nas─▒l kullan─▒laca─č─▒n─▒ ve bunlar─▒n en son de─či┼čikliklerle nas─▒l yukar─▒ ak─▒┼ča al─▒naca─č─▒n─▒ a├ž─▒klar.


1







├çatall─▒ bir havuzu her zaman i├žin iyi g├╝ncel tutmak konusunda iki ana ┼čey vard─▒r.

1. ├çatal ana ├žataldan dallar─▒ olu┼čturun ve orada de─či┼čiklik yap─▒n .

Bu nedenle, ├çekme ─░ste─činiz kabul edildi─činde, ┼čubeyi g├╝venli bir ┼čekilde silebilirsiniz, ├ž├╝nk├╝ katk─▒da bulunan kodunuz daha sonra yukar─▒ ak─▒┼čla g├╝ncelledi─činizde ├žatall─▒ deponuzun y├Âneticisinde ya┼čar. Bununla ustan─▒z, ba┼čka bir de─či┼čiklik yapmak ├╝zere yeni bir ┼čube olu┼čturmak i├žin her zaman temiz durumda olacakt─▒r.

2. ├çatal y├Âneticisinin otomatik olarak g├╝ncelleme yapmas─▒ i├žin zamanlanm─▒┼č bir i┼č olu┼čturun .

Bu cron ile yap─▒labilir . Linux'ta yaparsan─▒z ├Ârnek kod i├žin.

 $ crontab -e
 

crontab file ─░┼či saatlik olarak y├╝r├╝tmek i├žin bu kodu koymak .

 0 * * * * sh ~/cron.sh
 

Sonra olu┼čturmak cron.sh komut dosyas─▒ ve git etkile┼čimi ile ssh-agent ve / veya beklemek a┼ča─č─▒daki gibi

 #!/bin/sh
WORKDIR=/path/to/your/dir   
REPOSITORY=<name of your repo>
MASTER="[email protected]:<username>/$REPOSITORY.git"   
[email protected]:<upstream>/<name of the repo>.git  

cd $WORKDIR && rm -rf $REPOSITORY
eval `ssh-agent` && expect ~/.ssh/agent && ssh-add -l
git clone $MASTER && cd $REPOSITORY && git checkout master
git remote add upstream $UPSTREAM && git fetch --prune upstream
if [ `git rev-list HEAD...upstream/master --count` -eq 0 ]
then
    echo "all the same, do nothing"
else
    echo "update exist, do rebase!"
    git reset --hard upstream/master
    git push origin master --force
fi
cd $WORKDIR && rm -rf $REPOSITORY
eval `ssh-agent -k`
 

├çatall─▒ deponuzu kontrol edin. Zaman zaman bu bildirimi her zaman g├Âsterecektir:

Bu dal ┼čununla bile <upstream> : master .


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


0