1. Set up git-config.

    bash
    git config --global user.name "nama-pengguna"
    git config --global user.email "alamat-emel-pengguna"
    git config --global pull.rebase false

  2. Buat direktori .ssh di $HOME.

    bash
    mkdir .ssh

  3. Jana kekunci SSH.

    bash
    ssh-keygen -f .ssh/id_rsa_blog_hugo
    ssh-keygen -f .ssh/id_rsa_homes_app

  4. Di web browser, tambahkan kedua-dua kunci SSH yang dijana dari kedua-dua sistem.

    Di GitHub, pergi ke:-

    • Repositori blog-hugo > Settings > Deploy keys > Add deploy key.
    • Masukkan Title. Di ruangan Key, salin kunci SSH dari fail ~/.ssh/id_rsa_blog-hugo.pub dan tandakan kotak ‘Allow write access’.
    • Add key.

    Di GitLab, pergi ke:-

    • Project homes-app > Settings > Repository > Deploy Keys > Expand.
    • Masukkan Title. Di ruangan Key, salin kunci SSH dari fail ~/.ssh/id_rsa_homes-app.pub dan tandakan kotak ‘Write access allowed’.
    • Add Key.
  5. Kembali ke terminal, cipta fail ~/.ssh/config.

    • Di GitHub:-

      ~/.ssh/config
      # akaun untuk berkongsi fail di antara hos Arch dan tetamu FreeBSD di GitHub
      Host github.com-blog_hugo
        HostName github.com
        User pengguna
        IdentitiesOnly yes
        IdentityFile ~/.ssh/id_rsa_blog_hugo

    • Di GitLab:-

      ~/.ssh/config
      # akaun untuk berkongsi fail di antara hos Arch dan tetamu FreeBSD di GitLab
      Host gitlab.com-homes_app
        HostName gitlab.com
        User pengguna
        IdentitiesOnly yes
        IdentityFile ~/.ssh/id_rsa_homes_app

  6. Untuk klon repositori / projek, jalankan arahan berikut di terminal:-

    • GitHub

      bash
      git clone git@github.com-blog_hugo:pengguna/blog-hugo.git 

    • GitLab

      bash
      git clone git@gitlab.com-homes_app:pengguna/homes-app.git 

      Perhatikan, github.com-blog_hugo dan gitlab.com-homes_app selepas git@ adalah sama dengan Host yang di-highlight-kan di fail ~/.ssh/config di atas.

      Sebagai contoh, git clone yang pertama kali dijalankan akan memberi pengeluaran berikut di terminal:-

      Cloning into 'blog-hugo'...
      The authenticity of host 'gitlab.com (172.65.251.78)' can't be established.
      ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
      No matching host key fingerprint found in DNS.
      Are you sure you want to continue connecting (yes/no)? yes

      Taip ‘yes’, dan pengeluaran seterusnya adalah,

      Warning: Permanently added 'gitlab.com' (ECDSA) to the list of known hosts.
      remote: Enumerating objects: 59, done.
      remote: Counting objects: 100% (59/59), done.
      remote: Compressing objects: 100% (47/47), done.
      remote: Total 59 (delta 25), reused 32 (delta 9), pack-reused 0
      Receiving objects: 100% (59/59), 18.04 KiB | 1.06 MiB/s, done.
      Resolving deltas: 100% (25/25), done.

      Hal ini menandakan bahawa repositori / projek telah berjaya di-klon di sistem.

  7. Jangan lupa untuk jalankan ‘commit’ dan ‘git push’ setiap kali berlakunya sebarang perubahan kepada repositori / projek di sistem lokal. Saya tambah fail commit sebagai satu skrip zsh yang diletakkan di dalam direktori utama projek / repositori sebagaimana berikut:-

    ~/blog-hugo
    #!/usr/bin/env zsh
    
    # Add changes to git.
    git add .
    
    # Commit changes.
    msg="update `date`"
    if [ $# -eq 1 ]
      then msg="$1"
    fi
    git commit -m "$msg"
    
    # Push source and build repos.
    git push -u origin main

    Jadi selepas itu, apabila saya mahu kemaskini perubahan kepada repositori / projek, saya hanya perlu jalankan arahan berikut dari dalam direktori projek ini:-

    bash
    ./commit

    Selain itu, jika terdapat sebarang suntingan pada direktori / fail melalui akses repo di pelayar web, perlulah jalankan arahan ‘git pull’ terlebih dahulu di sistem lokal untuk mengemaskini perubahan sebelum memulakan kerja berkaitan.


Rujukan:

Lihat juga:

Kali terakhir dikemaskini:

Tentang Hamba

Seorang isteri dan ibu yang mempunyai minat mendalam terhadap Linux, Full Stack Development dan Data Analytics. Beliau juga memiliki bakat terpendam dalam bidang nyanyian (nasyid khususnya).