Local bir proje olu┼čturmak

Hen├╝z version kontrol├╝ alt─▒nda olmayan bir projenizi versiyon kontrol├╝ alt─▒na almak i├žin git init komutunu kullan─▒r─▒z. Bu i┼člemi ger├žekle┼čtirmek i├žin Mac OS X'de Terminal uygulamas─▒n─▒ Windows'da ise Git Bash'i a├žarak a┼ča─č─▒daki komutlar─▒ ├žal─▒┼čt─▒rman─▒z gerekir

$ cd proje/klas├Âr├╝n├╝z├╝n/yolu/
$ git init

Bu i┼člemden sonra

ls -la

komutu ile proje klas├Âr├╝n├╝z alt─▒ndaki dosyalar─▒ listeledi─činizde klas├Âr├╝n i├žinde .git isimli gizli bir klas├Âr├╝n oldu─čunu g├Âreceksiniz. git init komutu ile projemiz i├žin bo┼č bir repository olu┼čturduk. Ancak proje klas├Âr├╝m├╝zde dosyalar ve ba┼čka klas├Ârler bulunmas─▒na ra─čmen bu dosya ve klas├Ârlerin hi├ž biri hen├╝z Git taraf─▒ndan versiyon kontrol├╝ alt─▒na al─▒nmad─▒.

Working copy: Projenizin ana klas├Âr├╝ne Working Copy veya Working Directory ismi verilir. Bu klas├Ârde projenizde yer alan dosyalar─▒n ve klas├Ârlerin bir kopyas─▒ bulunur. Versiyon kontrol sistemine projenizin herhangi bir versiyonunu Working Copy'nize kopyalamas─▒n─▒ s├Âyleyebilirsiniz, ancak bir anda Working Copy'nizde projenizin sadece bir versiyonu yer al─▒r.

Versiyon kontrol├╝ alt─▒na almak istemedi─čimiz dosyalar

T├╝m geli┼čtirme ortamlar─▒ ve i┼čletim sistemlerinde kulland─▒─č─▒m─▒z ara├žlar taraf─▒ndan ara bir ├╝r├╝n olarak ├╝retilen ve asl─▒nda do─črudan versiyon kontrol├╝ alt─▒na almak istemedi─čimiz dosya veya klas├Ârler olacakt─▒r. ├ľrne─čin Mac OS X'in otomatik olarak ├╝retti─či gizli DS_Store isimli klas├Âr veya C++ derleyicileri taraf─▒ndan ├╝retilen .o uzant─▒l─▒ obj dosyalar─▒ gibi. Hangi dosyalar─▒n versiyon kontrol├╝ alt─▒nda tutulaca─č─▒na ve hangilerinin g├Âz ard─▒ edilece─čine Git otomatik olarak karar vermez, bu karar─▒ sizin vermeniz gerekir.

Kulland─▒─č─▒n─▒z geli┼čtirme ara├žlar─▒na ba─čl─▒ olarak hangi dosyalar─▒n g├Âz ard─▒ edilebilece─či ile ilgili GitHub'─▒n yay─▒nlad─▒─č─▒ derlemeye g├Âz atabilirsiniz.

Versiyon kontrol├╝ alt─▒na almak istemedi─činiz dosya ve klas├Ârleri tan─▒mlamak i├žin proje klas├Âr├╝ne eklenen .gitignore dosyas─▒ kullan─▒l─▒r. Bu dosyaya g├Âz ard─▒ etmek istedi─činiz dosya ve klas├Ârlerin tespit edilebilmesi i├žin do─črudan isimler veya basit kurallar ekleriz. Projelerinizi versiyon kontrol├╝ alt─▒na ald─▒ktan sonra ilk i┼č olarak GitHub'─▒n yay─▒nlad─▒─č─▒ derlemeyi veya kendi deneyiminiz ve bilginiz ile karar verece─činiz dosya ve klas├Ârleri .gitignore dosyas─▒na ekleyiniz. Projenizin ilerleyen a┼čamalar─▒nda bu i┼člemi yapman─▒z biraz daha zahmetli olacakt─▒r.

┼×imdi gelin .gitignore dosyas─▒nda kurallar─▒ nas─▒l tan─▒mlayabilece─čimize bir g├Âz atal─▒m

*.[oa]
.~

─░lk sat─▒rda o veya a uzant─▒s─▒ ile biten dosyalar─▒n versiyon kontrol├╝ d─▒┼č─▒nda tutulmas─▒ i├žin bir kural tan─▒ml─▒yoruz. ─░kinci sat─▒rda ise ~ karakteri ile biten (├žo─ču metin d├╝zenleme uygulamas─▒ ge├žici dosyalar─▒ ~ ile biten dosyalar olarak otomatik olu┼čturur) dosyalar─▒n versiyon kontrol├╝ haricinde tutmas─▒ i├žin kural tan─▒ml─▒yoruz.

.gitignore dosyas─▒nda tan─▒mlama yaparken a┼ča─č─▒daki kurallar ge├žerlidir

  • Bo┼č sat─▒rlar veya # ile ba┼člayan sat─▒rlarda yapt─▒─č─▒n─▒z tan─▒mlamalar Git taraf─▒ndan dikkate al─▒nmaz.

  • *, ?, [ ], { }, [!] ve gibi karakterler kullan─▒larak olu┼čturulan ve globbing patterns ad─▒ verilen tan─▒mlay─▒c─▒lar kullanabilirsiniz

  • Klas├Ârleri belirtmek i├žin / karakteri kullan─▒l─▒r. ├ľrne─čin /projemde/versiyon/kontrol├╝/istemedigim/bir/klasor/ ┼čeklinde bir tan─▒m yapt─▒─č─▒m─▒zda ilgili klas├Âr ve alt─▒ndaki t├╝m dosyalar Git taraf─▒ndan g├Âz ard─▒ edilir.

  • Tan─▒mlad─▒─č─▒n─▒z bir kural─▒n tersini ! simgesi ile tan─▒mlar─▒z. ├ľrne─čin !/projemin/kaynak/kodu/ ┼čeklinde bir tan─▒m yapt─▒─č─▒m─▒zda bu klas├Âr d─▒┼č─▒ndaki t├╝m klas├Âr ve dosyalar Git taraf─▒ndan g├Âz ard─▒ edilecektir.

─░lk commitÔÇÖimiz

Projemizi versiyon kontrol├╝ne al─▒p g├Âz ard─▒ edilmesini istedi─čimiz klas├Âr ve dosyalar─▒ da belirledikten sonra a┼ča─č─▒daki komutlar ile ilk commit i┼člemimizi yapabiliriz

$ git add -A
$ git commit -m "─░lk commit i┼člemimizi yapt─▒k"

Bu komutlar─▒n ne i┼če yarad─▒─č─▒na sonraki b├Âl├╝mlerde de─činece─čiz, ┼čimdilik

  • ─░lk komutun t├╝m proje dosyalar─▒n─▒n Staging Area'ya eklenmesi i├žin,

  • ─░kinci komutun ise dosyalar─▒m─▒z─▒n bir a├ž─▒klama ile commit edilmesi i├žin

    kullan─▒ld─▒─č─▒n─▒ s├Âylemek ile yetinelim.

Yukar─▒daki iki komutu arka arkaya kullanmak yerine ayn─▒ i┼člemi git commit -a komutu ile de yapabiliriz.