30/11/2021

Git -4

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.

Leave a Reply