Contents:
Repository được hiểu là một kho chứa mã nguồn của dự án, thư mục .git, các lịch sử thay đổi mã nguồn.
Để tiến hành 1 dự án đã tồn tại bằng GIT, bạn chỉ cần thực hiện lệnh $ git init tại thư mục dự án, hoặc nếu bạn có dự án trên remote repository thì bạn cần thực hiện clone dự án đó về máy bằng lệnh git clone [url].
Có hai repository cần phân biệt là:
Branch đơn giản là một con trỏ có thể di chuyển được đến 1 trong các commit.
Để xóa branch ở phía local:
Để xóa branch remote:
Để push một branch ở local lên reomte dưới một cái tên khác ta sử dụng lệnh $ git push <tên_remote> <tên_branch_local>:<tên_remote_branch>.
Rebase là một trong hai cách để tích hợp các thay đổi từ một nhánh này sang nhánh khác.
Cùng xem ví dụ:
$ git checkout experiment $ git rebase master First, rewinding head to replay your work on top of it... Applying: added staged command
Cách git rebase tích hợp nhánh bạn đang làm việc và nhánh bạn muốn rebase là đầu tiên nó đi tới commit gốc chung của cả hai nhánh, tìm sự khác biệt ở mỗi commit của nhánh mà đang làm việc, tạm thời lưu các thay đổi đó, khôi phục lại nhanh hiện tại về một commit với nhánh bạn đang rebase và cuối cùng áp dụng lần lượt các thay đổi.
Đến lúc này, bạn có thể quay lại nhánh master và thực hiện fast-forward merge (Xem hình dưới)
Ví dụ trên cho thấy cách hoạt động của rebase khác với merge, ngoài ra rebase còn có 1 vài điểm khác so với merge:
Khi ta sử dụng lệnh $ git fetch, lệnh này sẽ truy cập vào remote project và kéo toàn bộ dữ liệu mà bạn chưa có từ remote project về. Sau đó bạn có thể tích hợp dữ liệu vào brach bất kỳ lúc nào.
git pull cũng sẽ kéo, truy suất toàn bộ các tham chiếu và tích hợp chúng vào remote branch.
Trong quá trình làm việc, chúng ta có thể rơi vào trường hợp khi đang thực hiện một công việc dang dở nhưng phải tạm dừng và chuyển qua một nhánh mới để thực hiện tiến trình khác. Nếu chúng ta chỉ muốn lưu lại các thay đổi mà chưa commit thì git stash sẽ giúp bạn.
Trong ví dụ:
$ git status Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: index.html Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: lib/simplegit.rb
Bạn đang có vài thay đổi và muốn chuyển qua branch khác, bạn chỉ cần chạy $ git stash hoặc git stash save
$ git stash Saved working directory and index state "WIP on master: 049d078 added the index file" HEAD is now at 049d078 added the index file (To restore them type "git stash apply")
Lúc này bạn đã có thể chuyển sang branch mới.
$ git stash list stash@: WIP on master: 049d078 added the index file stash@: WIP on master: c264051 Revert "added file_size" stash@: WIP on master: 21d80a5 added number to log
Có 2 cách để thực hiện công việc này:
Để gộp nhiều commit thành một commit duy nhất, ta sử dụng câu lệnh: $ git rebase -i HEAD~<index> với index là số commit cần gộp tính từ HEAD xuống.
// Lùi HEAD về 2 commit
$ git reset HEAD~2
Cherry pick được dùng để lấy một commit từ branch này và áp những thay đổi lên trên branch khác.
Để sử dụng cherry pick, bạn git checkout qua branch cần apply commit vào và thực thi lệnh: $ git cherry-pick <mã_hash_của_commit>.
Mỗi tập tin trong Git được quản lý dự trên 3 trạng thái: committed, modified và staged.
Điều này tạo ra ba phần riêng biệt của một dự án sử dụng Git: thư mục Git, thư mục làm việc, và khu vực tổ chức (staging area).
Tiến trình công việc (workflow) cơ bản của Git:
Cảm ơn bạn đã theo dõi toàn bộ nội dung bài viết. Hy vọng bài viết đã cung cấp thêm cho bạn chút kiến bổ ích về GIT.
Như các bạn đã biết thì Telegram là một dịch vụ tin nhắn tuyệt vời…
Apache Tomcat là gì? Apache Tomcat là một web server HTTP được phát triển bởi…
20 triệu có lẽ là một mức chi phí khá lý tưởng cho một máy…
Micosoft chính thức phát hành Microsoft Edge Chromium Microsoft đã chính thức tung ra trình…
CentOS 8 đã phát hành ngày 25/09/2019, phiên bản 8 lần này có những thay đổi…
Thời buổi công nghệ phát triển, phần lớn công việc của con người đều có…
Leave a Comment