Remote Repositories
Github
Varmış benimde bir github repom en son 2016 da bir bakmışım
https://github.com/canbuyukburc
Git hubda yeni bir repo oluştururken üstte bir satırda bize bir link veriyor
https://github.com/canbuyukburc/git_egitimi.git
buraya push ediyoruz ve authentication ı yapıyoruz aşağıda ki gibi oluyor.
PS C:\Users\can\git\first_repo> git push https://github.com/canbuyukburc/git_egitimi.git
info: please complete authentication in your browser...
Enumerating objects: 25, done.
Counting objects: 100% (25/25), done.
Delta compression using up to 8 threads
Compressing objects: 100% (19/19), done.
Writing objects: 100% (25/25), 3.28 KiB | 840.00 KiB/s, done.
Total 25 (delta 4), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (4/4), done.
To https://github.com/canbuyukburc/git_egitimi.git
* [new branch] master -> master
Git docker Containerim içinde de bir repo oluşturdum
$ ssh 192.168.0.190 -p2222 "init first_repo.git"
Reinitialized existing Git repository in /git/data/users/can/first_repo.git/
ANCAAAAAAK çok önemli doğru ssh keyinizin olması lazım.
Sonra bu repoyu local repoma ekliyorum.
git remote add first_repo ssh://192.168.0.190:2222/~/first_repo.git
git remote add <NAME> <WHERE>
Daha sonra istediğimiz branchi push ediyoruz.
PS C:\Users\can\git\first_repo> git push ssh://192.168.0.190:2222/~/first_repo.git
Enumerating objects: 25, done.
Counting objects: 100% (25/25), done.
Delta compression using up to 8 threads
Compressing objects: 100% (19/19), done.
Writing objects: 100% (25/25), 3.28 KiB | 373.00 KiB/s, done.
Total 25 (delta 4), reused 0 (delta 0), pack-reused 0
To ssh://192.168.0.190:2222/~/first_repo.git
* [new branch] master -> master
Git remote
Git remote add ile bir repoyu alias olarak eklediğimiz için aslında istersek bu repoya direk
git push first_repo diyerekte uzun uzun address port vs yazmadan gönderebiliriz.
verbose ile detay görebiliriz. Mesela hangi remotelar var. genelde origin kullanılırmış.!!!
PS C:\Users\can\git\first_repo> git remote -v
first_repo ssh://192.168.0.190:2222/~/first_repo.git (fetch)
first_repo ssh://192.168.0.190:2222/~/first_repo.git (push)
github_git_egitimi https://github.com/canbuyukburc/git_egitimi.git (fetch)
github_git_egitimi https://github.com/canbuyukburc/git_egitimi.git (push)
origin 192.168.0.190 (fetch)
origin 192.168.0.190 (push)
silmek içinde remove
PS C:\Users\can\git\first_repo> git remote remove origin
PS C:\Users\can\git\first_repo> git remote -v
first_repo ssh://192.168.0.190:2222/~/first_repo.git (fetch)
first_repo ssh://192.168.0.190:2222/~/first_repo.git (push)
github_git_egitimi https://github.com/canbuyukburc/git_egitimi.git (fetch)
github_git_egitimi https://github.com/canbuyukburc/git_egitimi.git (push)
Clone
bir repository yi kolnlamak istediğimizde hiç bir klasör yaratmadan direk bir yere gidip “git clone <link>” verp klonlarız. Bu işlem sonucunda o reponun bir klasörü oluşur içine girip
git remote -v yaptığımızda o remote reponun origin olarak eklendiğini görürürüz.
PULL
mesela yeni bir projeye katıldık localde hic bişi yok.
Remote a ekliyoruz ve sonra git pull
PS C:\Users\can\gitea> git pull DockerOrigin master
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 15 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (15/15), 1.69 KiB | 22.00 KiB/s, done.
From ssh://192.168.0.190:2222/Can/Test1
* branch master -> FETCH_HEAD
* [new branch] master -> DockerOrigin/master
PS C:\Users\can\gitea> ls
Directory: C:\Users\can\gitea
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2.12.2021 09:45 960 docker-compose.yml
-a---- 2.12.2021 09:45 28 file_toFetch
-a---- 2.12.2021 09:45 40 ssh-text-git
böylece herşey geldi ancak önce git init yapmıştık!!!!
Fetch
Şimdi mesela Web arayüzünde bir dosya oluştuduk veya başka bir developer repoya birşey ekledi.
O zaman bu dosya bizim lokalimizde yoktur ama remoteda vardır. Bunu sync etmemiz gerekir.
Zaten push etmeye kalktığımızda bize izin vermez sistem önce bir fetch et der.
PS C:\Users\can\gitea> git push DockerOrigin
To ssh://192.168.0.190:2222/Can/Test1.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'ssh://192.168.0.190:2222/Can/Test1.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Fetch etmeliyiz.
PS C:\Users\can\gitea> git fetch DockerOrigin
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 277 bytes | 13.00 KiB/s, done.
From ssh://192.168.0.190:2222/Can/Test1
fa9bbfc..af5b5ac master -> DockerOrigin/master
Ancak merge etmiyor !!!!!!
PS C:\Users\can\gitea> git branch -a
* master
remotes/DockerOrigin/master
bunu merge etmek gerekli
PS C:\Users\can\gitea> git merge DockerOrigin/master
Updating fa9bbfc..af5b5ac
Fast-forward
fetch2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 fetch2.txt
PULL
Pull = fetch + merge
şimdi yine bir dosya oluşturdum Remote repository de.
PS C:\Users\can\gitea> git pull DockerOrigin master
From ssh://192.168.0.190:2222/Can/Test1
* branch master -> FETCH_HEAD
Updating af5b5ac..5d6804a
Fast-forward
fetch3 | 1 +
1 file changed, 1 insertion(+)
create mode 100644 fetch3
Dosya direk geliyor.