Tạo 1 repository duới local của mình trong thư mục project
git remote add
1. Đầu tiên tạo 1 project trên github2. Copy đường dẫn ssh khi đã tạo3. Dưới local chúng ta sẽ tạo remote repository đó
$ git remote add <name> <url>
Để thêm remote repository, sử dụng lệnh remote là tên đăng ký, là chỉ định URL của remote repository đã tạo ở trên
4. Kiểm tra lại nhánh đã tạo
$ git remote
git clone
1. Tìm một repository trên github và copy đường dẫn ssh2. Clone project về máy bằng lệnh với đường dẫn đã copy ở trên
$ git clone
Tạo nhánh mới
$ git checkout -b develop
Lệnh này vừa tạo mới nhánh develop và tự động chuyển sang nhánh này.
Chuyển nhánh
$ git checkout master
Xóa nhánh
Git status
1. Đầu tiên tạo 1 file demo.html để xem sự thay đổi trong git
$ git status
git add
Dùng để chuẩn bị cho commit
git add . để thêm tất cả các file có thay đổi
$ git add .
Hoặc add 1 file mình cần
$ git add <name-file>
Git commit
$ git commit -m "<name-commit>"
Git commit --amend
Trong trường hợp add thiếu file, hoặc phát hiện sai xót mà không muốn tạo ra commit mới, thì dùng git commit --amend để gộp thay đổi lại với commit gần nhất
$ git commit --amend
Git log
Dùng để kiểm tra lịch sử commit
Git log --oneline
Dùng để xem danh sách lịch sử commit ngắn gọn gồm id và tên commit
Git diff branch
Dùng kiểm tra sự khác nhau giữa các nhánh
$ git diff branch <name-branch>
Git diff
Dùng kiểm tra sự khác nhau giữa nhánh hiện tại so với lúc commit
$ git diff
Git checkout -- file
Dùng để phục hồi những File bị thay đổi khi bạn đã commit
$ git checkout -- <file>
Git reset
1. Git reset
Dùng để di chuyển HEAD về vị trí commit muốn reset, vẫn giữ nguyên tất cả các thay đổi của file đến vị trí hiện tại và loại bỏ các thay đổi khỏi stage . Có 2 cách sử dụng như sau:
$ git reset HEAD~<index>
index là vị trí thứ tự mà bạn muốn reset
$ git reset <commit-id>
Dựa vào id của các commit mà bạn muốn reset
2. Git reset --hard
Dùng để di chuyển HEAD về vị trí commit reset và loại bỏ tất cả sự thay đổi của file sau thời điểm commit reset. Cũng có 2 lệnh tương tự [git reset] như sau:
$ git reset --hard HEAD~<index>
$ git reset --hard <commit-id>
3. Git reset --soft
Cũng di chuyển HEAD về vị trí commit reset, giữ nguyên tất cả các thay đổi của file đến vị trí hiện tại và đặc biệt giữ nguyên các thay đổi ở stage. Tương tự, có 2 cách dùng như sau:
$ git reset --soft HEAD~<index>
$ git reset --soft <commit-id>
Git revert
Dùng để cho Workspace quay về 1 commit trong quá khứ, đồng thời tạo ra 1 commit để đánh dấu là đã quay về commit đã xác định
$ git revert <commit-id> or $ git revert HEAD~<index>
Tạo conflict
1. Kiểm tra nội dung của file README.md trên nhánh master có nội dung như sau:
2. Từ nhánh master ta checkout sang một nhánh mới để làm việc
3. Bây h chúng ta thay đổi nội dung trong file README.md như hình dưới:
4. Tiến hành commit và chuyển nhánh sang master:
5. Thay đổi nội dung trong file README.md này như sau:
6. Tiến hành commit:
7. Tiến hành merge nhánh develop thì lúc này xảy ra lỗi conflict như sau:
8. Vào file README.md và bắt đầu sửa conflict
Tiến hành sửa conflict trong file như sau:
9. Sau đó chúng ta add và commit lại để merge thành công !
GIT
git init
Tạo 1 repository duới local của mình trong thư mục project![1-tao-reposive](https://user-images.githubusercontent.com/40189009/41585272-c49389a6-73d3-11e8-8ae2-eafefdb164a7.png)
git remote add
1. Đầu tiên tạo 1 project trên github
2. Copy đường dẫn ssh khi đã tạo
3. Dưới local chúng ta sẽ tạo remote repository đó
Để thêm remote repository, sử dụng lệnh remote là tên đăng ký, là chỉ định URL của remote repository đã tạo ở trên
4. Kiểm tra lại nhánh đã tạo
git clone
1. Tìm một repository trên github và copy đường dẫn ssh
2. Clone project về máy bằng lệnh với đường dẫn đã copy ở trên
Tạo nhánh mới
Lệnh này vừa tạo mới nhánh develop và tự động chuyển sang nhánh này.![9-check-branch](https://user-images.githubusercontent.com/40189009/41588185-4e600ec8-73db-11e8-9298-d95b89d54269.png)
Chuyển nhánh
Xóa nhánh
Git status
1. Đầu tiên tạo 1 file demo.html để xem sự thay đổi trong git![12-create-hello](https://user-images.githubusercontent.com/40189009/41589168-feccfb02-73dd-11e8-952e-5bb54b6d2d2b.png)
git add
Dùng để chuẩn bị cho commit
Git commit
Git commit --amend
Trong trường hợp add thiếu file, hoặc phát hiện sai xót mà không muốn tạo ra commit mới, thì dùng git commit --amend để gộp thay đổi lại với commit gần nhất
Git log
Dùng để kiểm tra lịch sử commit![30-gitlog](https://user-images.githubusercontent.com/40189009/41592850-34a2ed9a-73e8-11e8-8871-4507ab7351eb.png)
Git log --oneline
Dùng để xem danh sách lịch sử commit ngắn gọn gồm id và tên commit
Git diff branch
Dùng kiểm tra sự khác nhau giữa các nhánh
Git diff
Dùng kiểm tra sự khác nhau giữa nhánh hiện tại so với lúc commit
Git checkout -- file
Dùng để phục hồi những File bị thay đổi khi bạn đã commit
Git reset
1. Git reset
Dùng để di chuyển HEAD về vị trí commit muốn reset, vẫn giữ nguyên tất cả các thay đổi của file đến vị trí hiện tại và loại bỏ các thay đổi khỏi stage . Có 2 cách sử dụng như sau:
index là vị trí thứ tự mà bạn muốn reset![git-reset-head](https://user-images.githubusercontent.com/40189009/42730789-d9f8f5fc-8827-11e8-826a-ff393c0be5a0.png)
Dựa vào id của các commit mà bạn muốn reset![reset-commit_id](https://user-images.githubusercontent.com/40189009/42730798-1ffc155c-8828-11e8-8e27-c6f244aaa6dc.png)
2. Git reset --hard
Dùng để di chuyển HEAD về vị trí commit reset và loại bỏ tất cả sự thay đổi của file sau thời điểm commit reset. Cũng có 2 lệnh tương tự [git reset] như sau:
3. Git reset --soft
Cũng di chuyển HEAD về vị trí commit reset, giữ nguyên tất cả các thay đổi của file đến vị trí hiện tại và đặc biệt giữ nguyên các thay đổi ở stage. Tương tự, có 2 cách dùng như sau:
Git revert
Dùng để cho Workspace quay về 1 commit trong quá khứ, đồng thời tạo ra 1 commit để đánh dấu là đã quay về commit đã xác định
Tạo conflict
1. Kiểm tra nội dung của file README.md trên nhánh master có nội dung như sau:
2. Từ nhánh master ta checkout sang một nhánh mới để làm việc
3. Bây h chúng ta thay đổi nội dung trong file README.md như hình dưới:
4. Tiến hành commit và chuyển nhánh sang master:
5. Thay đổi nội dung trong file README.md này như sau:
6. Tiến hành commit:
7. Tiến hành merge nhánh develop thì lúc này xảy ra lỗi conflict như sau:
8. Vào file README.md và bắt đầu sửa conflict
Tiến hành sửa conflict trong file như sau:
9. Sau đó chúng ta add và commit lại để merge thành công !