- vừa được xem lúc

Tạo script file(*.bat) đơn giản giúp clone nhiều repo và xử lý nếu gặp thông báo lỗi "fatal: Authentication failed for..."

0 0 16

Người đăng: Kien Pham

Theo Viblo Asia

Trong bài viết này tôi sẽ tạo 1 script file giúp đỡ clone nhiều repository 1 lúc.

Trên github của tôi hiện tại có 4 repository như bên dưới:

Thông thường để clone từng repo về, chúng ta có thể dùng các công cụ hỗ trợ như "github desktop" - "source tree" - "tortoise" và phổ biến nhất là dùng lệnh nhưng đa phần sẽ cần clone từng repo, giả sử chúng ta có 1 project lớn dùng microservice có nghĩa là sẽ có nhiều repo(multiple services) cần được lấy xuống và nếu lấy từng cái một xuống thì sẽ thao tác nhiều hơn là chỉ cần 1 script file là có thể lấy hết tất cả repo về.

1. Các bước chuẩn bị:

  • Tạo folder chứa tất cả repo, ở đây tôi tạo folder name "DemoGitHub":

  • Trong folder "DemoGitHub", tôi dùng notepad++ và tạo 1 new file với định dạng "*.bat"

2. Nội dung script file:

@echo off
SET bn="main"
cd C:\DemoGitHub
echo %bn%
rem ####Switch branch for ####
git clone https://github.com/{username}/repo1.git -b %bn%
echo "git clone for repo1" git clone https://github.com/{username}/repo2.git -b %bn%
echo "git clone for repo2" git clone https://github.com/{username}/repo3.git -b %bn%
echo "git clone for repo3" git clone https://github.com/{username}/repo4.git -b %bn%
echo "git clone for repo4" pause

Tôi sẽ giải thích 1 vài thông số trong script file:

  • SET bn="main" -> thiết lập giá trị cho branch, nghĩa là chỉ định bạn sẽ clone repo trên branch nào, ở đây tôi để default branch là "main"
  • cd C:\DemoGitHub -> chỉ định thư mục chứa tất cả repo
  • echo %bn% -> chỉ dùng để in ra(hiển thị) branch name
  • git clone https://github.com/{username}/repo{x} -b %bn% -> câu lệnh "git clone https://github.com/{username}/repo{x}" này chắc các bạn đều đã biết dùng để clone repo về, riêng "-b %bn%" nghĩa là chỉ định sẽ clone repo trên branch nào, biến giá trị "bn" tôi đã khai báo ở trên

Trong quá trình clone những private repo về các bạn sẽ gặp thông báo yêu cầu nhập username và password:

$ git clone https://github.com/{username}/repo.git Username: username của bạn Password: personal_token của bạn

Cách lấy personal_token:

  • Đầu tiên đăng nhập vào dashboard github của các bạn, nếu chưa có tài khoản github vui lòng đăng ký. Sau khi đặng nhập thành công -> click avatar icon như hình và chọn mục "Settings":

  • Tại giao diện "Settings" -> chọn mục "Developer settings":

  • Tại giao diện "Developer settings" -> chọn mục "Personal access tokens" và click chọn "Generate new token":

  • Tại giao diện "Generate new token", có 3 mục chúng ta quan tâm đến:
  • Tại "Note" -> nhập mục đích bạn sửa dụng token này cho việc gì

  • Tại "Expiration" -> mặc định sau 30 ngày token sẽ hết hạn

  • Tại "Select scopes" -> chọn scopes mà bạn cần tuỳ thuộc vào mỗi project. Tại đây tôi chỉ chọn "repo":

  • Sau khi chọn "scopes" phù hợp -> click button "Generate token":

  • Token được sinh ra và bạn chỉ cần click highlighted icon và copy token này, bạn cần backup token này:

Cuối cùng chỉ cần paste token này nếu trong quá trình clone yêu cầu

Để tối ưu hơn, tôi sẽ tích hợp token này vào trong script file:

@echo off
SET bn="main"
cd C:\DemoGitHub
echo %bn%
rem ####Switch branch for ####
git clone https://{token}@github.com/{username}/repo1.git -b %bn%
echo "git clone for repo1" git clone https://{token}@github.com/{username}/repo2.git -b %bn%
echo "git clone for repo2" git clone https://{token}@github.com/{username}/repo3.git -b %bn%
echo "git clone for repo3" git clone https://{token}@github.com/{username}/repo4.git -b %bn%
echo "git clone for repo4" pause

Chạy scipt file và kiểm tra kết quả:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Github CLI - Đơn giản hóa cuộc sống cho developer

1. Giới thiệu.

0 0 29

- vừa được xem lúc

Tự build cho mình một hệ thống BADGE MARKDOWN siêu xịn xò - #1

Chào mọi người, lại là mình và cái serie "Something thú vị" của mình đây, serie tổng hợp những kiến thức mình cảm thấy thú vị ở trên google, github, bla bla... Qua đó chia sẻ những project nho nhỏ, thích hợp để mọi người làm cho vui hoặc relax hoặc giải trí. https://github.com/weebNeedWeed/custom-ba

0 0 20

- vừa được xem lúc

Profile README - Portfolio cá nhân nhanh, bổ, rẻ ngay trên Github

. Khi đã chọn nghề IT, dấn thân vào con đường dev khó có ngày yên nghỉ (ngơi), chắc các bạn đã không còn xa lạ với Github, nếu không muốn nói là quá quen (nếu chưa biết Github là cái gì thì bạn cần lăn lộn giang hồ nhiều nữa ). Với một hệ thống siêu khủng, nhiều tính năng siêu tiện ích, một đội ngũ

0 0 70

- vừa được xem lúc

Git objects

. Giới thiệu. Hầu hết các developer đều ít nhiều sử dụng git trong công việc hàng ngày. Khi bắt đầu với git, chúng ta đều được học các câu lệnh quên thuộc như git add ., git commit -m '[Feat] Hello world'.

0 0 22

- vừa được xem lúc

Phân biệt GitHub và GitLab. Nên chọn dịch vụ nào?

Làm thế nào để phân biệt GitHub và GitLab? Ngày nay, quản lý kho là một trong những yếu tố quan trọng của phát triển phần mềm hợp tác. Các tính năng phân phối thành công yêu cầu cần sự kết hợp của các

0 0 33

- vừa được xem lúc

Điểm mặt 10 project đang làm mưa làm gió trên Github trong lĩnh vực phát triển web

Nguồn: https://iainfreestone.hashnode.dev/10-trending-projects-on-github-for-web-developers-12th-march-2021. .

0 0 76