Untuk mencari nama file atau mencari kata di log commit git, gunakan perintah
git log -p
lalu tekan /
ketik kata atau file yang mau dicari.
Belajar Mengajar
Last Updated on By tommy Leave a Comment
Untuk mencari nama file atau mencari kata di log commit git, gunakan perintah
git log -p
lalu tekan /
ketik kata atau file yang mau dicari.
Last Updated on By tommy Leave a Comment
Untuk saat ini fitur backup/restore Gitea belum lengkap, bukan berarti kita tidak bisa melakukan backup kan ;) Mari kita lakukan langkah demi langkah untuk mengamankan data gitea.
Spesifikasi gitea yang saya gunakan
– gitea versi 91417e9
– database sqlite3
Sebagai contoh kita akan memindahkan gitea dari server1 ke server2
Folder tempat menginstall gitea saya berada di /home/tommy/gitea
untuk membackup gitea karena menggunakan SQLite cukup dengan mengkompress semua folder /home/tommy/gitea
cd /home/tommy tar zcvf gitea.tar.gz gitea/
pindahkan gitea.tar.gz tersebut ke server lain
scp gitea.tar.gz root@IP.SERVER2:/tmp
Di server yang akan kita restore kita akan membuat user baru git
adduser git passwrd git
Ekstrak file backup gitea
tar zxvf /tmp/gitea.tar.gz -C /home/git/
cd /home/git/gitea grep '/home/tommy/gitea' -rl . | xargs sed -i 's#/home/tommy/gitea/#/home/git/gitea/#g'
setelah selesai jalankan service gitea
./gitea web # atau jalankan di background nohup ./gitea web &
terakhir anda harus menghapus lalu menambahkan SSH Key yang digunakan dari web gitea.
Last Updated on By tommy Leave a Comment
Cara mengatasi error src refspec v1 matches more than one
error: src refspec v1 matches more than one. error: failed to push some refs to '[email protected]:jaranguda/mail.jaranguda.git'
Cek tag yang bermasalah dengan git tag
$ git tag v1 v2
lalu hapus dengan git tag -d NAMATAG
$ git tag -d v1 Deleted tag 'v1' (was 26be539)
lalu push kembali
git push --set-upstream origin v1 ## output perintah diatas Branch v1 set up to track remote branch v1 from origin. Everything up-to-date Counting objects: 39, done. Delta compression using up to 4 threads. Compressing objects: 100% (39/39), done. Writing objects: 100% (39/39), 431.75 KiB | 0 bytes/s, done. Total 39 (delta 12), reused 0 (delta 0) * [new branch] v1 -> v1 Branch v1 set up to track remote branch v1 from origin.
Last Updated on By tommy Leave a Comment
Gitea fork dari gogs merupakan alternative lain dari Github ataupun Gitlab, selain menggunakan memory yang kecil, gitea juga stabil dan cepat. Saya sendiri menggunakan gitea (sebelumnya gogs) untuk hosting 30-an repository dengan 3 orang tim masih memadai dengan VPS 512 (DigitalOcean/Vultr) lebih dari cukup menghandle kebutuhan git tim, walaupun sekarang saya sudah pindah ke Linode karena alasan tertentu.
Cukup intro kurang jelasnya, sekarang kita langsung ke tutorial cara install Gitea di Debian 8.
Untuk menjalankan proses gitea, sebaiknya menggunakan user biasa (bukan root). Disini kita akan membuat user baru jaranguda
adduser jaranguda
Buat direktori untuk menyimpan semua data gitea di /home/jaranguda/gitea
, lalu download gitea
su jaranguda; mkdir /home/jaranguda/gitea; cd /home/jaranguda/gitea wget https://dl.gitea.io/gitea/1.0.1/gitea-1.0.1-linux-amd64 -O gitea chmod +x gitea
Jalankan gitea
./gitea web
Buka di browser http://ip.address:3000
Disini saya menggunakan SQLite, pilih Database Type
SQLite3
Ingat untuk mengganti Application URL ke domain/subdomain anda contoh http://git.jaranguda.com:3000/
klik Admin Account Settings
, input username dan password anda.
Akhiri dengan mengklik Install
. User yang anda tambahkan adalah user admin, yang bisa mengakses semua konfigurasi gitea.
Untuk setting SSL kita akan menggunakan reverse proxy nginx dan letsencrypt. Disini saya tidak akan membahas cara mengarahkan DNS dari IP ke subdomain/domain anda, biar tutorialnya ngga terlalu panjang dan sudah banyak yang membahasnya.
apt-get install nginx -y
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list apt-get update apt-get install certbot -t jessie-backports -y
certbot certonly --webroot -w /var/www/html/ -d git.jaranguda.com
Buat vhost untuk domain gitea anda (cth git.jaranguda.com) /etc/nginx/sites-available/git.jaranguda.com.conf
# /etc/nginx/sites-available/git.jaranguda.com.conf server { listen 80; server_name git.jaranguda.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name git.jaranguda.com; ssl_certificate /etc/letsencrypt/live/git.jaranguda.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.jaranguda.com/privkey.pem; location / { proxy_set_header X-Real-IP $remote_addr; proxy_pass http://localhost:3000; } }
Buat symbolic link, agar vhost/server block tersebut di aktifkan
ln -s /etc/nginx/sites-available/git.jaranguda.com.conf /etc/nginx/sites-enabled/git.jaranguda.com.conf
Tes konfigurasi nginx lalu restart
nginx -t; service nginx restart; service nginx status
Buka domain gitea anda di browser, bukan lagi menggunakan git.jaranguda.com:3000
tetapi git.jaranguda.com
Semua akses ke git.jaranguda.com
akan di forward ke https://git.jaranguda.com
Last Updated on By tommy Leave a Comment
Dengan membuat hook post commit, anda tidak perlu secara manual menjalankan script untuk mengupload repository git anda setiap kali ada perubahan, cukup sekali push
, dibackground git akan otomatis melakukan push
lagi ke repository yang telah anda tentukan. Sebagai contoh kasus, setiap kali saya menjalahnkan perintah git push
(disini contoh saya menggunakan Github) saya mau perubahan tersebut otomatis di push juga ke mirror git yang ada di Bitbucket dan Gitlab.
Di root direktori .git anda, tambahkan post-commit di folder .git/hooks
(.git/hooks/post-commit), copy paste script dibawah ini
exec git push --quiet bitbucket & exec git push --quiet gitlokal &
ubah permission file post-commit agar bisa dijalankan oleh shell.
chmod +x .git/hooks/post-commit
di .git/config
tambahkan
[remote "bitbucket"] url = git@bitbucket.org:bpk/internal.git mirror = true [remote "gitlokal"] url = git@gitlab.lokal:bpk/internal.git fetch = +refs/heads/*:refs/remotes/gitlokal/*
setelah selesai, coba anda push code anda seperti biasa, setelah beberapa saat cek ketiga repository diatas, seharusnya data commit sudah sama.
Last Updated on By tommy Leave a Comment
Disini saya menggunakan Omnibus untuk menginstall GitLab CE (Community Edition). File konfigurasi nginx disimpan di /var/opt/gitlab/nginx
Buat folder baru tempat menyimpan file SSL
mkdir /var/opt/gitlab/nginx/ssl
Pindah ke folder ssl lalu generate SSL dengan perintah
openssl req -sha256 -nodes -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3560
Bila menggunakan SSL berbayar, certificate dan key tinggal di copy paste ke file cert.pem dan key.pem.
Cara untuk menggunakan SSL berbayar maupun Self signed sama saja ;). Edit server block nginx /var/opt/gitlab/nginx/conf/gitlab-http.conf
tambahkan di baris paling bawah
server { ssl on; listen *:443; server_name git.fgg; ssl_certificate /var/opt/gitlab/nginx/ssl/cert.pem; ssl_certificate_key /var/opt/gitlab/nginx/ssl/key.pem; server_tokens off; ## Don't show the nginx version number, a security best practice root /opt/gitlab/embedded/service/gitlab-rails/public; ## Increase this if you want to upload large attachments ## Or if you want to accept large git objects over http client_max_body_size 250m; ## Individual nginx logs for this GitLab vhost access_log /var/log/gitlab/nginx/gitlab_access.log; error_log /var/log/gitlab/nginx/gitlab_error.log; location / { ## Serve static files from defined root folder. ## @gitlab is a named location for the upstream fallback, see below. try_files $uri $uri/index.html $uri.html @gitlab; } location /uploads/ { ## If you use HTTPS make sure you disable gzip compression ## to be safe against BREACH attack. gzip off; ## https://github.com/gitlabhq/gitlabhq/issues/694 ## Some requests take more than 30 seconds. proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_pass http://gitlab; } ## If a file, which is not found in the root folder is requested, ## then the proxy passes the request to the upsteam (gitlab unicorn). location @gitlab { ## If you use HTTPS make sure you disable gzip compression ## to be safe against BREACH attack. ## https://github.com/gitlabhq/gitlabhq/issues/694 ## Some requests take more than 30 seconds. proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_pass http://gitlab; } ## Enable gzip compression as per rails guide: ## http://guides.rubyonrails.org/asset_pipeline.html#gzip-compression ## WARNING: If you are using relative urls remove the block below ## See config/application.rb under "Relative url support" for the list of ## other files that need to be changed for relative url support location ~ ^/(assets)/ { root /opt/gitlab/embedded/service/gitlab-rails/public; gzip_static on; # to serve pre-gzipped version expires max; add_header Cache-Control public; } error_page 502 /502.html; }
yang perlu di edit adalah bagian server_name dan letak file SSL anda.
Terakhir restart semua service gitlab
gitlab-ctl restart