Not : Konuyla ilgili SVN Notlarım başlıklı yazıya göz atabilirsiniz.
Giriş
Git ile ilgili aldığım notlarım aşağıda. Mercurial'in Git'ten daha kolay olduğu da söyleniyor.
Git history'i ilelebet saklar.
Git Flow
Git Flow yazısına taşıdım
packfile Nedir ?
Değişikliklerin kaydedildiği dosya. Yerden tasarruf sağlar. Açıklaması şöyle
Giriş
Git ile ilgili aldığım notlarım aşağıda. Mercurial'in Git'ten daha kolay olduğu da söyleniyor.
Git history'i ilelebet saklar.
Git Flow
Git Flow yazısına taşıdım
Değişikliklerin kaydedildiği dosya. Yerden tasarruf sağlar. Açıklaması şöyle
Git TarihçesiThe packfile is a single file containing the contents of all the objects that were removed from your filesystem. The index is a file that contains offsets into that packfile so you can quickly seek to a specific object. What is cool is that although the objects on disk before you ran the gc were collectively about 22K in size, the new packfile is only 7K. You’ve cut your disk usage by ⅔ by packing your objects.
Git'ten önce BitKeeper vardı. Ancak BitKeeper'ın geliştiricisi bedava kullanımı kaldırınca yeni bir versiyon kontrol sistemine ihtiyaç doğdu ve Git ortaya çıktı
Git Staging Area Nedir
Açıklaması şöyle
When you save your changes with git add, GIT will start tracking and saving your changes with files. These changes are stored in the .git directory. Then, files are moved from Working Directory to Staging Area. Still, if you make changes to these files, GIT will not know about them, you need to tell GIT to notice those changes.
Şeklen şöyle
Git Komutu Seçenekleri
Git komutları globla komutlar ve action + action seçenekleri şeklide düşünülebilir. Şeklen şöyledir
add seçeneği yazısına taşıdım.
branch seçeneği
core.pager Alanı
Örnek
Şöyle yaparız.
Açıklaması şöyle
bundle seçeneği
checkout seçeneği
checout seçeneği yazısına taşıdım.
cherry-pick seçeneği
Git komutları globla komutlar ve action + action seçenekleri şeklide düşünülebilir. Şeklen şöyledir
command [global options] action [action-specific options]
add seçeneğiadd seçeneği yazısına taşıdım.
branch seçeneği
branch seçeneği yazısına taşıdım
core.pager Alanı
Örnek
Şöyle yaparız.
git config --global core.pager 'less -FRSX'
--global seçeneğiAçıklaması şöyle
omit the --global if you want it to only apply to the current repository.
git bundle seçeneği yazısına taşıdım.
checkout seçeneği
cherry-pick seçeneği
cherry-pick seçeneği yazısına taşıdım.
clean seçeneği
Açıklaması şöyle
Delete untracked files, including ignored ones.Şöyle yaparız.
git clean -fdx
clone seçeneğiclone seçeneği yazısına taşıdım
count-objects seçeneği
Şöyle yaparız.
$ git count-objects -v
count: 49
size: 568
in-pack: 307916
packs: 40
size-pack: 176024
prune-packable: 0
garbage: 0
size-garbage: 0
diff seçeneğibranch ve master arasındaki farkı görmek için şöyle yaparız.
git diff featureXYZ_branch master
Şöyle yaparız.git diff remotes/origin/featureXYZ_branch remotes/origin/master
diff-tree seçeneği
diff-tree seçeneği yazısına taşıdım
fetch seçeneği yazısına taşıdım
filter-branch seçeneği
Açıklaması şöyle. Daha önceki commit'lerin değiştirilebilmesini sağlar.
Şöyle yaparız.
Şöyle yaparız.
"file system check" anlamına gelir. Açıklaması şöyle
init seçeneği yazısına taşıdım.
ls-files seçeneği
Şöyle yaparız.
Örnek
Remote repository indirilir.
pull seçeneği yazısına taşıdım.Açıklaması şöyle. Daha önceki commit'lerin değiştirilebilmesini sağlar.
You can use --tree-filter and --index-filter with git filter-branch.--index-filter is faster and will update your index fileÖrnek
Şöyle yaparız.
# loop on your commits and update the desired file
git filter-branch --index-filter 'mv "new-file" "old_file"' HEAD
ÖrnekŞöyle yaparız.
git filter-branch --tree-filter "CodeFormatter.exe"
fsck seçeneği"file system check" anlamına gelir. Açıklaması şöyle
Git's hashing only happens at the time commits are created, and from there on the hashes are used to identify the commits. This in no way ensures the integrity of the files. Git repos can get corrupted and lose data. In fact, git has a built-in command to detect this kind of loss, git fsck, but as the documentation says, you are responsible for restoring any corrupted data from backups.init seçeneği
init seçeneği yazısına taşıdım.
ls-files seçeneği
Şöyle yaparız.
$ mkdir foo
$ git init
$ git add .
$ git ls-files # which files does Git know about?
# apparently, none
$ touch foo/bar # create a file in the directory
$ git add .
$ git ls-files # does Git know about it now?
foo/bar # yep!
log seçeneğimerge seçeneği yazısına taşıdım.
mv seçeneği
Yerel dizindeki dosya ismini değiştirir.Örnek
Remote repository indirilir.
git clone https://github.com/benqzq/ulcwe.git
Dizine gidilir.cd ulcwe
Dizinin ismi değiştirilir.git mv local xyz
Commit edilir.git commit -m "Rename local to xyz"
Remote repository'e aktarılır.git push
pull seçeneğipush seçeneği
push seçeneği yazısına taşıdım
rebase seçeneği
rebase seçeneği yazısına taşıdım.
remote seçeneği
remote seçeneği yazısına taşıdım.
Şöyle yaparız.
Örnek
rebase seçeneği yazısına taşıdım.
remote seçeneği
remote seçeneği yazısına taşıdım.
Örnek
Şöyle yaparız.cd /path/to/your/local/repo
git remote set-url origin https://<newGitHubAccount>@github.com/newGitHubAccount/test.git
ÖrnekŞöyle yaparız.
$ git remote -v
rm seçeneğiÖrnek
Açıklaması şöyle.
tag seçeneği
tag seçeneği yazısına taşıdım
Delete tracked files (don’t forget the git in front of this, rm -rf . is quite different)Şöyle yaparız.
git rm -rf .
Örnek - untrack file without deleting it
Şöyle yaparız
$ git rm --cached <file>
reset seçeneği
revert seçeneği yazısına taşıdım
tag seçeneği yazısına taşıdım
stash seçeneği
stash seçeneği yazısına taşıdım
whatchanged seçeneği
Şöyle yaparız.
Açıklaması şöyle.
Hook
Post Commit Hook ile commit için gönderilen tüm dosyalar alındıktan sonra bir betik çalıştırılabilir.
--------------------------------------------------------------------------------------------------------------
Word Belgesi Sürümü Numarası
Her ne kadar svn veya git Word Belgesinin tarihçesini tutsa da, belgenin kapak sayfasına sürüm numarası yazmak gerekiyor. Bazı şirketlerde gördüğüm örnekler:
Belge henüz yayınlanmadıysa ve üzerinde çalışılıyorsa sürüm numarasına -(P1) -preliminary anlamına geliyor - yazılır. Belge resmi olarak yayınlandıktan sonra sürüm numarasındaki -(P1) kaldırılır ve sadece "-" yazılır.
Yani :
Şöyle yaparız.
# git
alias gw='git whatchanged'
alias gg='git grep -n -C8'
alias ggi='git grep -i -n -C8'
alias gb='git branch'
alias gbd='git branch -D'
alias gba='git branch -a'
alias gc='git checkout'
alias gcp='git cherry-pick'
alias gfo='git fetch origin'
alias s='git status'
alias gmom='git merge origin/master'
alias grom='git rebase origin/master'
alias gpom='git pull origin master'
alias pplog='git log --oneline --graph --decorate'
work-tree seçeneğiAçıklaması şöyle.
If you have a non-bare git repository, there are two parts to it: the git directory and the working tree. The working tree has your checked out source code, with any changes you might have made. The git directory is normally called .git, and is in the top level of your working tree - this contains all the history of your project, configuration settings, pointers to branches, the index (staging area) and so on.Şöyle yaparız.
git --work-tree=/path/to/your/working/tree
--version seçeneği
--version seçeneği yazısına taşıdım
Post Commit Hook ile commit için gönderilen tüm dosyalar alındıktan sonra bir betik çalıştırılabilir.
--------------------------------------------------------------------------------------------------------------
Word Belgesi Sürümü Numarası
Her ne kadar svn veya git Word Belgesinin tarihçesini tutsa da, belgenin kapak sayfasına sürüm numarası yazmak gerekiyor. Bazı şirketlerde gördüğüm örnekler:
Belge henüz yayınlanmadıysa ve üzerinde çalışılıyorsa sürüm numarasına -(P1) -preliminary anlamına geliyor - yazılır. Belge resmi olarak yayınlandıktan sonra sürüm numarasındaki -(P1) kaldırılır ve sadece "-" yazılır.
Yani :
Version : -(P1) iken
Version : - haline gelir.
Hiç yorum yok:
Yorum Gönder