Một lệnh chuyển đổi tài khoản github
Giải pháp này có dạng một bí danh git duy nhất. Sau khi thực hiện, người dùng dự án hiện tại sẽ được đính kèm vào một tài khoản khác
Tạo khóa ssh
ssh-keygen -t rsa -C "rinquin.arnaud@gmail.com" -f '/Users/arnaudrinquin/.ssh/id_rsa'
[...]
ssh-keygen -t rsa -C "arnaud.rinquin@wopata.com" -f '/Users/arnaudrinquin/.ssh/id_rsa_pro'
Liên kết chúng với tài khoản GitHub / Bitbucket của bạn
- sao chép khóa công khai mặc định
pbcopy < ~/.ssh/id_rsa.pub
- đăng nhập vào tài khoản GitHub của bạn
- dán khóa vào
add SSH key
trang github
- sao chép khóa công khai khác
pbcopy < ~/.ssh/id_rsa_pro.pub
- lặp lại và điều chỉnh các bước từ 2 đến 4 cho mọi tài khoản khác
Bước 1. Tự động chuyển khóa ssh.
Chúng tôi có thể định cấu hình ssh
để gửi sử dụng một khóa mã hóa cụ thể tùy thuộc vào host
. Điều tốt đẹp là bạn có thể có một vài bí danh cho cùng hostname
.
Xem ~/.ssh/config
tập tin ví dụ này :
# Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# Professional github alias
Host github_pro
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_pro
cấu hình từ xa
Bây giờ bạn có thể sử dụng các bí danh này trong điều khiển từ xa bằng cách thay đổi git@github.com
bởi git@github_pro
.
Bạn có thể thay đổi điều khiển từ xa các dự án hiện tại (sử dụng cái gì đó như git remote set-url origin git@github_pro:foo/bar.git
) hoặc điều chỉnh chúng trực tiếp khi nhân bản chúng.
git clone git@github.com:ArnaudRinquin/atom-zentabs.git
sử dụng bí danh, nó trở thành:
git clone git@github_pro:ArnaudRinquin/atom-zentabs.git
Bước 2. Thay đổi git user.email
Cài đặt cấu hình Git có thể là toàn cục hoặc theo từng dự án. Trong trường hợp của chúng tôi, chúng tôi muốn một cài đặt cho mỗi dự án. Rất dễ dàng để thay đổi nó:
git config user.email 'arnaud.rinquin@wopata.com'
Mặc dù điều này là dễ dàng, nhưng nó sẽ mất nhiều thời gian cho các nhà phát triển chúng tôi. Chúng ta có thể viết một bí danh git rất đơn giản cho điều đó.
Chúng tôi sẽ thêm nó vào ~/.gitconfig
tập tin.
[user]
name = Arnaud Rinquin
email = rinquin.arnaud@gmail.com
...
[alias]
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
Sau đó, tất cả những gì chúng ta phải làm là git setpromail
chỉ thay đổi email của chúng tôi cho dự án này.
Bước 3. Xin vui lòng chuyển đổi một lệnh?!
Sẽ không tốt nếu chuyển từ tài khoản mặc định sang tài khoản được chỉ định bằng một lệnh không tham số duy nhất? Điều này là chắc chắn có thể. Lệnh này sẽ có hai bước:
- thay đổi điều khiển từ xa dự án hiện tại sang các bí danh đã chọn
- thay đổi người dùng dự án hiện tại.email config
Chúng tôi đã có một giải pháp lệnh cho bước thứ hai, nhưng bước đầu tiên khó hơn nhiều. Một lệnh thay đổi máy chủ từ xa
Đây là giải pháp dưới dạng một lệnh bí danh git khác để thêm vào ~/.gitconfig
:
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
Điều này cho phép thay đổi tất cả các điều khiển từ xa từ máy chủ này sang máy chủ khác (bí danh). Xem ví dụ:
$ > git remote -v
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (push)
$ > git changeremotehost github.com github_pro
$ > git remote -v
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (push)
Kết hợp tất cả
Bây giờ chúng ta chỉ cần kết hợp hai lệnh thành một, điều này khá dễ dàng. Xem cách tôi cũng tích hợp chuyển đổi máy chủ bitbucket.
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
gopro = !sh -c \"git changeremotehost github.com github_pro && git changeremotehost bitbucket.com bitbucket_pro && git setpromail\"
Liên kết nguồn -Hướng dẫn