-
Notifications
You must be signed in to change notification settings - Fork 0
/
git - github.txt
233 lines (132 loc) · 6.11 KB
/
git - github.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
http://vcs.atspace.co.uk/2012/11/05/which-repository-is-more-compact-git-or-svn/
https://hanakamer.com/bu-yaz%C4%B1da-git-versiyon-kontrol-sisteminin-yap%C4%B1-ta%C5%9Flar%C4%B1ndan-ve-temel-%C3%A7al%C4%B1%C5%9Fma-prensibinden-bahsedece-b3be93158541
git nedir?
Git Nedir?
Git bir versiyon kontrol sistemidir. Yapacağınız projelerin adım adım versiyonlarını alarak daha sonra ihtiyaç halinde, aldığınız bu versiyonlara geri dönebilirsiniz.
Git yazılımı, Linux çekirdiğini oluşturan Linus Torvalds tarafından yazılmıştır. Açık kaynak kodlu özgür yazılım ürünüdür. Herhangi bir ücret ödemeden kullanabilirsiniz.
neden ihtiyaç duyarız?
-mevcut projeye birşey eklemek yada çıkarmak için projenin kopyası üzerinden devam edilir. proje geliştirme bu şekilde ilerler. Git buradaki karışıklığı profesyonel şekilde düzenlememizi sağlar.
--
bir proje dizininde eksi ve yeni versiyınlar arasındaki geçiş daha kolay yapılır.
--------------------------------------------------------------
2.KURULUMU
git download (git-scm.com)
git gui, git bash, git cmd
linux için:
-sudo apt-get install git
-git --version (kurulumun gerçekleşip gerçekleşmediğine bakarız)
3.GIT YAPILANDIRMASI
git'te kullanıcı tanımlanmalıdır.
git config --global user.name "siyarsimsek"
git config --global user.email "[email protected]"
git config --global user.name --> kullanıcıyı kontrol edebiliriz.
git config --global user.email --> email'i kontrol edebiliriz.
4.GIT PROJESI OLUSTURMA
işe yarar komutlar
pwd, ls, cd
masaüstünde proje_dizini açıldı.
"git init";
bu komut ile proje_dizini bir git projesi olur. ls -al ile görüntülenir.(gizli dosya formatındalar)
bu dosyalar projenin takibi ve kayıtı için gereklidir.
--------------
6.COMMIT & LOG
projeleri repository'e ekleme soyaları.
~/Desktop
mkdir myproject
mv 26.09.2017 ~/Desktop/myproject
cd myproject
-git init
-git add . --> mevcutu git repository'nin geçici alanına taşır
-git commit -m "ilk commit" -> alınan versiyonun niteliğini açıklamalı
-git log --> alınan tüm versiyonları listeler commit'ler dahil kullanıcı vs
-*-*-
git status --> projede değişiklikler olduğunda bunları gösterir. çalışma dizini ile repository arasında fark yoksa herhagi birşey göstemersi beklenmez.
(AYRICA; git status yazıldığında yukarıda ne yapabileceğimize ilişikin uyarılar da olur.)
*burada hesap.py dosyasını myproject dizininde oluşturduğumuzda; commit edilecek dosya olmadığını, geçiş bölgesine eklenecek dosya olduğunu belirtir.
-git add hesap.py (git add . demememizin sebebi tüm dosyaları bir daha yükleme ihtiyacı olamamasıdır.
-git log ile tekrar bakılabilir.
*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
İŞ AKIŞI
3 bölümden oluşur
working directory - staging area - git repository
çalışma dizini - geçiş bölgesi - git deposu
----- add ------> ----- commit ---->
iki dosya oluşturup biri geçiş diğeri de repository'e gönderildiğinde ne olur ona bakabiliriz.
*---*--*--*-*-**---**--*-**--*-*-*
değişiklikler olduğunda;
git status ile bunu görebiliriz.
-"git diff" ile değişiklikler "+" ve yeşil'le belirtilir.
bu commit edilirse değişiklikler kayıt edilir.
--dosyalarda birşeyler silindiğinde
(git diff x -> x ile ilgili değişikliklerdir.)
*-*-
git diff; working directory ile staging area arasındaki farkları verir.
git diff --staged; staging area ile repository arasındaki farkalrı verir.
----------------------
dosya silme;
manuel silme
git komutu ile silme
-manuel silindikten sonra add/rm ile staged area'ya iletebilirsiniz.
-git rm carpma.py
-git commit -m "sildik"
(bash üzerinden gidilirse yukarıdaki iki komut yeterli. dizine gidip elle silmeye gerek yoktur.)
şimdi içinde dosyalar olan klasörü silelim
mkdir sil
touch 1.py 2.txt 3.txt
önce git deposuna göndermek gerek -> git add .
git commit -m "klasor oldu"
şimdi silelim
git rm -r sil/
git commit -m "dosya silindi"
----------------------------------------
dosya isimlendirme ve taşıma;
git mv 2.txt iki.txt; direk git üzerinde isim değiştiririz ekstradan git add . ihtiyac yok.
(ctr+shift+c/ctrl+shift+v)
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
değişiklikleri geri alma
çalışma dizininde olursak;
projede bir dosya içeriği değişti diyelim.
git checkout -- index ile bakarız.
dosyayı silsek dahi aynı komut ile geri getiririz.
*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
staged area'ya gönderilen dosyayı getirme;
a.py üzerinde değişklik yaptık;
git add a.py dedik
şu anda değişiklik yapılan a.py staged area'ya geldi.
burada - git reset HEAD a.py dersek dizine gelir
bir üst taraftaki gibi git checkout -- a.py dersek
herşey eski haline döner.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
versiyon değiştirme
v1 > v2 > v3
v3'ten v2'ye geçişte v2'nin kopyası alınmış olur.
git checkout (gidilmesi istenilen versiyon hash'i) -- .
(. -> tüm dosyların istenilen versiyondakş haline dönüş istenir.)
kodun ilk 7 hanesi de olur.
--------------------------------------------------------------github
--------------------------------------------------------------
git yazılımı ile entegre olmuş bir depolama alanıdır. gitlab/
git bağlantısını o dizine eklemek gerek;
>github
git remote add bağlantınıntakmaadı https://github.com/siyarsimsek/github.git
git remote ---> bağlantının eklenip eklenmediğine bakar
git push -u bağlantınıntakmaadı master
-*-**-
.gitignore -> git tarafından takip edilmesini istemediğiniz dosyalarınızı saklamak içindir. git'e gönderip veritabanını görüntülemez.
touch verii
cat >> .gitignore
(hangi dosyaları saklamak istersek onları yazarız)
git status yazılırsa verii dosyası gözükmez.
önce gitignore'e yazın dosyanızı
*-*-*
mkdir belge
touch dosya{1..5}.html
*--***-*-**--**-*-*-
branch
master'ın kopyalanmasıdır aslında
git branch yenidal
git branch --all
git checkout yenidal --> yenidal'a geçtik
git checkout master yenidal --> aradaki farkları gösterir
git checkout master -> master'a geçtik
git merge yenidal --> yenidal ile birleşti