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

Lưu local environment của máy vào git. Lưu file từ nhiều nơi khác nhau vào một thư mục git.

0 0 16

Người đăng: Annie Le

Theo Viblo Asia

Bạn quá mệt mỏi vì phải cài đặt lại mọi thứ từ đầu khi đổi máy cũ sang máy mới (cài lại terminal pluggins, cài lại các phần mềm cần thiết,...)?

Đừng lo, đã có bài viết này.

Hôm ấy là một ngày tháng 7 nắng nhẹ, một lập trình viên tên Annie giấu tên đang đi đến công ty với tâm trạng đầy hứng khởi.

Bỗng đột nhiên trời chuyển mưa nặng hạt.

Vì chủ quan nên cô đã không mang theo áo mưa, kết quả là chiếc laptop trong cặp của cô ướt nhẹp.

Annie lái xe bạt mạng thật nhanh, mặc kệ tiếng còi xe ing ỏi, mặc kệ xe ben xe tải chạy vèo vèo đằng sau, cô tạt đầu xe, lạng lách đánh võng, vặn ga hết cỡ, bất chấp mạng sống của mình, chỉ cầu mong sao chiếc laptop không bị làm sao.

Vừa đến công ty, cô tháo lap thật nhanh, lau chùi cẩn thận, nhưng k may lap đã tắt ngủm không một lời chào thân ái.

Annie đã khóc. Cô không tiếc mấy chục củ sửa máy hay mua máy mới, mà cô khóc vì khi đổi máy cô phải mất hàng giờ, có khi cả ngày, cả tuần để cài lại mọi thứ.

Đừng như Annie.

Bài học rút ra: Ngay từ bây giờ phải lưu lại tất cả cài đặt có thể lưu, đẩy lên git, để sau này có đổi máy chỉ cần clone repo đó về, bấm enter và ngồi húp cà phê chờ đợi thôi. Đỡ mất công.

1. Xác định những gì có thể lưu

  • Các file config của terminals: .bashrc, .zshrc, .fishrc ,...
  • Git ssh keys: ~/.ssh(không khuyến khích, bay acc như chơi, tốt nhất đừng đẩy các loại key lên git)
  • Các file settings của editors như Vim, IntelliJ, Vscode,...
  • Tạo ra một executable file để tự động cài đặt các phần mềm cần thiết. Tham khảo repo này để viết nha
  • Các file/folder ở các nơi khác nhau nhưng bạn muốn lưu tất cả vào một git repo.
  • Vân vân mây mây.

2. Tạo một git repo

Tạo một folder để lưu những thứ có thể lưu trên. Lưu đâu kệ bạn. Let's say: ~/env_setup/

mk dir env_setup

And then:

git init

3. Link các file config vào git repo trên

Chúng ta sẽ tạo một Symbolic Links. Hiểu đơn giản là tạo ra một file, file này liên kết trỏ đến một file khác. Ví dụ bạn tạo một file A link đến file B ở một thư mục khác, khi sửa file A thì tức là đang sửa file B.

ln -S {tên file/folder gốc} {tên link file/folder đó ở folder vừa tạo} 

Ví dụ: Thông thường file config của terminal nằm ở ~/.bashrc.

Mình muốn lưu file này vào folder ~/env_setup/ mình vừa tạo ở trên để đẩy lên git lưu trữ, sau này khi đổi máy mới mình clone về và thay thể file ~/.bashrc ở máy mới bằng file ~/.bashrc ở máy cũ lấy từ git.

Thay vì mình copy file từ folder ~/ vào ~/env_setup. Để rồi một lúc nào đó bạn sửa file ~/.bashrc thì muốn cập nhật lại file đó ở ~/env_setup bạn phải remove, copy/edit lại.

Thì mình sẽ link file ~/env_setup/.bashrc đến file ~/.bashrc. Khi sửa file gốc thì file link tới nó cũng tự động cập nhật.

ln -S ~/.bashrc ~/env_setup/.bashrc 

Để kiểm chứng, bạn link như trên, rồi vào sửa file ~/.bashrc rồi vào xem file ~/env_setup/.bashrc xem nó có đổi theo không nhé, không lại bảo mình điêu kk.

4. Đẩy lên git

Đẩy lên đâu tuỳ bạn. 😁

Bình luận

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

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

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 713

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

Tập hợp những câu lệnh GIT hữu dụng

Dưới đây là một vài ví dụ về các câu lệnh Git mà tôi thường dùng. git config --global user.name "John Doe". git config --global user.

0 0 60

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

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 73

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

Cấu hình CI/CD với Github (phần 1): Một ít lý thuyết

CI/CD là gì. Về mặt khái niệm là vậy nhưng về mặt triển khai thì CI/CD là quá trình tự động thực hiện các quá trình build, test, release, deploy khi có các trigger như commit/merge code lên một branch định sẵn hoặc có thể là tự động chạy theo một lịch cố định.

0 0 120

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

Giới thiệu về Git LFS

. Git LFS là gì . Git LFS làm điều này bằng cách thay thế các tệp lớn trong repo của bạn bằng một con trỏ nhỏ.

0 0 31

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

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 70