TỔNG QUAN
LÀM VIỆC BRANCH
TÌM HIỂU COMMIT
LÀM VIỆC VỚI REMOTE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Git - Amend, thay đổi commit cuối cùng

Trong một số trường hợp bạn commit nhưng bị quên add một số file nào đó và bạn không muốn tạo ra một commit mới thì có thể sử dụng lệnh commit kết hợp tahm số --amend để gộp các file đó và bổ sung vào commit cuối cùng, vì vậy không tạo ra commit mới.  

1. Lệnh Git commit --amend

Cú pháp của lệnh này như sau:

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

$ git commit --amend

Nếu bạn thực hiện lệnh này ngay sau commit cuối cùng mà không thay đổi gì thêm thì ảnh của commit cuối cùng đó không thay đổi gì, chỉ là nội dung message thay đổi mà thôi. Trình soạn thảo sẽ hiển thị để bạn thay đổi message, đương nhiên bạn có thể để message mặc định mà git đã tạo ra, và message này sẽ ghi đè lên message trước đó.

Ví dụ
$ git commit -m "Bo sung header"
$ git add "myfile.html"
$ git commit --amend

2. Loại bỏ tập tin đã đưa vào stage

Khi bạn đã thêm một file nào đó vào stage (trạng thái staged, đây là trạng thái sẽ được đưa vào blod khi committed) nhưng sau đó muốn loại bỏ nó ra khỏi stage thì có thể sử dụng lệnh reset HEAD.

Ví dụ bạn tạo ra 2 file là freetuts.txt và freetutsdotnet.txt và bạn sử dụng lệnh sau để thêm vào stage.

$ git add freetuts.txt
$ git add freetutsdotnet.txt

Sau khi thực hiện lệnh này bạn sẽ chạy lệnh commit để đưa nó vào git directory, tuy nhiên bạn nhận thấy file freetuts.txt không cần thiết để đưa vào commit thì lúc này bạn sẽ thực hiện các bước sau để loại bỏ nó ra khỏi stage.

Trước tiên bạn hãy gõ lệnh sau để xem hướng dẫn của git.

$ git status

Kết quả sẽ trả về như sau:

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   freetuts.txt
        new file:   freetutsdotnet.txt

Câu use "git reset HEAD <file>..." to unstage ý muốn nói bạn hãy sử dụng lệnh git reset HEAD để loại bỏ một file ra khỏi stage. Như trên mình sẽ loại bỏ file freetus.txt bằng lệnh sau:

$ git reset HEAD freetuts.txt

Bạn thử gõ lệnh git status xem có thay đổi gì không nhé, kết quả như sau:

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   freetutsdotnet.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        freetuts.txt

Kể quả bảo rằng bạn đã loại bỏ 1 file ra khỏi stage, muốn thêm nó vào lại stage thì dùng lệnh add.

3. Lời kết

Như vậy để bổ sung vào commit cuối cùng thì ta sử dụng lệnh commit nhưng thêm tham số -amend vào phía sau $ git commit --amend, sau đó làm theo hướng dẫn trên màn hình của editor.  Muốn loại bỏ một file ra khỏi stage thì sử dụng lệnh $ git reset HEAD <file_name>.

Cùng chuyên mục:

Push data lên Github

Push data lên Github

Mình sẽ không viết cách clone source từ github về mà sẽ trình bày cách…

Git - Lưu thông tin đăng nhập với credential store

Git - Lưu thông tin đăng nhập với credential store

Khi bạn thực hiện bất kì thao tác nào liên quan đến remote thì bắt…

Tạo remote repository trên Github

Tạo remote repository trên Github

Như trong bài giới thiệu series thì trong bài này chúng ta sẽ bắt đầu…

Git - Push data lên remote Repository

Git - Push data lên remote Repository

Nếu bạn là leader và bạn khởi động cho dự án thì công việc đầu…

Git - Đổi tên remote repository

Git - Đổi tên remote repository

Nếu bạn đã lỡ đặt tên cho remote không đúng thì có thể sử dụng…

Git - Xóa remote repository

Git - Xóa remote repository

Trường hợp bạn đã thêm một remote repo nhưng sau đó bạn nhận thấy đã…

Git - Thêm remote Repository

Git - Thêm remote Repository

Để làm việc với remote thì ban phải có server và cài đặt git remote…

Git - Xóa local branch

Git - Xóa local branch

Thông thường mỗi một nhiệm vụ chúng ta sẽ làm việc trên một branch khác…

Git - Phân nhánh với Rebase

Git - Phân nhánh với Rebase

Trong Git, có hai cách để trộn hai nhánh với nhau đó là sử dụng…

Git - Stash trở về trạng thái ban đầu

Git - Stash trở về trạng thái ban đầu

Trong bài này mình sẽ nói về lệnh $ git stash, đây là lệnh dùng…

Git - Mô hình dữ liệu kho chứa

Git - Mô hình dữ liệu kho chứa

Ở các chương trước mình đã giới thiệu một số lệnh làm việc với branch…

Git -  Ba trạng thái Committed  Staged Modified

Git - Ba trạng thái Committed Staged Modified

Trong bài này chúng ta cùng thảo luận đến ba trạng thái của Git, đây…

Git - Lệnh merge branch - Xử lý conflict

Git - Lệnh merge branch - Xử lý conflict

Merge branch tức là bạn gộp hai branch lại với nhau, thao tác này thường…

Git - Commit căn bản

Git - Commit căn bản

Trước khi chuyển đổi sang branch khác thì bạn nên lưu lại tất cả những…

Git - Lệnh checkout branch

Git - Lệnh checkout branch

Nếu chúng ta làm việc trên nhiều branch thì phải thực hiện thao tác chuyển…

Git - Lệnh tạo Branch

Git - Lệnh tạo Branch

Như mình đã trình bày ở bài trước khi làm việc nhóm thì leader sẽ…

Git - Branch là gì? Branch master

Git - Branch là gì? Branch master

Khi làm việc với Git bắt buộc chúng ta phải thông qua branch, nhưng chúng…

Git - Tạo Repository

Git - Tạo Repository

Trong bài này mình sẽ hướng dẫn các bạn khái niệm Repository là gì và…

Git - thao tác thư mục

Git - thao tác thư mục

Để sử dụng Git nhuần nhuyễn thì đòi hỏi bạn phải có kỹ năng thao…

Git - Cấu hình username và email

Git - Cấu hình username và email

Trước khi sử dụng Git thì bạn cần phải cấu hình hai thông số đó…

Top