Git (IG) (edit)

# Do 'git add'
git add src/Input/Data.csv
git add .

# Undo 'git add' before commit?
git rm --cached src/Input/Test.csv
git rm --cached docs

git tag -l
git tag -a v0.1 -m "release version 0.1"

Git - @manhng

Git Handbook - @manhng

Git Command Line - @manhng

Khi bạn gặp tình huống phải lấy lại toàn bộ source của một branch theo một commit xác định

Lý do: Để kiểm tra những thay đổi bạn đã làm ở thời điểm hiện tại so với thời điểm commit xác định ở trên

git checkout -b <new-branch-name> <commit-id-sha>

Git Show: How do I list all of the files in a commit?

git show --pretty="" --name-only d36bc8f4a2f0199fc7121e19712ba0ac763043de

git diff-tree --no-commit-id --name-only -r d36bc8f4a2f0199fc7121e19712ba0ac763043de

git - How do I list all of the files in a commit? - Stack Overflow

Git Log: How to list all commits that changed a specific file?

git log -- follow -- filename BE/Web.Api/Controllers/DocumentApiController.cs

git - How to list all commits that changed a specific file? - Stack Overflow

Khi bạn muốn xóa bin, obj phía BE mà không muốn ảnh hưởng đến node_modules phía FE

Get-ChildItem .\ -Include bin,obj -Recurse | Where-Object {-not($_.FullName.ToLower().Contains("node_modules"))} |foreach ($_) { Remove-Item $_.fullname -Force -Recurse }

Remove bin, obj via command prompt

for /d /r . %d in (bin,obj) do @if exist "%d" rd /s/q "%d"

taskkill /im VBCSCompiler.exe /f /t
taskkill /IM iisexpress.exe /F
taskkill /im msbuild.exe /f /t

Remove bin, obj via a .bat file

for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"

Hướng dẫn sử dụng git – Các lệnh cơ bản của GIT

git config

Một trong các lệnh được dùng nhiều nhất là git config, có thể được cấu hình cho cá nhân với các giá trị của emails, thuật toán cho diff, username và file format,… Ví dụ, command bên dưới có thể dùng cho email:

 git config --global user.email sam@google.com

git init

Lệnh này được dùng để tạo GIT repository. Cách dùng:

git init

git add

Lệnh git add có thể được dùng để thêm file vào index. Ví dụ, command sau có thể thêm một file có tên temp.txt vào thư mục local vào index:

git add temp.txt

git clone

Lệnh git clone được dùng với mục đích check out. Nếu respository phụ thuộc vào server từ xa, sử dụng:

git clone alex@93.188.160.58:/path/to/repository

Ngược lại, nếu một bản repository đang hoạt động tại local đã được tạo, hãy dùng:

git clone /path/to/repository

git commit

Lệnh git commit được dùng để commit thay đổi từ đầu. Hãy lưu ý là thay đổi không được áp dụng cho repository của server từ xa :

git commit –m "Message to go with the commit here"

git status

Lệnh git status hiển thị danh sách thay đổi của files được thêm hoặc commited. Cách dùng:

git status

git push

git push là một lệnh được sử dụng nhiều của git. Một lệnh push đơn giản sẽ gửi thay đổi tới master branch của repositories của server từ xa được chỉ định với một thư mục. Ví dụ:

git push origin master

git checkout

Lệnh git checkout có thể được dùng để tạo branch hoặc chuyển giữa chúng. Ví dụ, lệnh sau tạo một branch mới và chuyển tới nó;

command git checkout -b <branch-name>

Để chuyển từ branch này sang branch khác, hãy dùng:

git checkout <branch-name>

git remote

Lệnh git remote giúp user kết nối tới repository từ xa. Lệnh sau liệt kê danh sách repositories từ xa mà đang được cấu hình:

git remote –v

Lện này cũng giúp người dùng kết nối từ repository ở local tới remote server:

git remote add origin <93.188.160.58>

git branch

Lệnh git branch có thể được dùng để liệt kê, tạo hoặc xóa branches. Để liệt kê tất cả các branches đang có trong repositories, hãy dùng:

git branch

Để xóa branch:

git branch –d <branch-name>

git pull

Để merge tất cả các thay đổi trên remote repository tới thư mục đang chạy trên local, pull command cần được dùng. Cách dùng:

git pull

git merge

Lệnh git merge được dùng để merge một branch vào một branch đang hoạt động. Cách dùng:

git merge <branch-name>

git diff

Lệnh git diff được dùng để liệt kê xung đột. Để hiển thị xung đột với base file, sử dụng:

git diff --base <file-name>

Command bên dưới được dùng để hiển thị mâu thuẫn giữa branches sắp được merge:

git diff <source-branch> <target-branch>

Để hiển thị các mâu thuẫn hiện tại, sử dụng:

git diff

git tag

  • Annotated tag
  • Light-weighted tag

Git - git-tag Documentation (git-scm.com)

Git Tag Explained: How to List, Create, Remove, and Show Tags in Git (freecodecamp.org)

  1. git tag <name-of-tag>
  2. git tag v1.3 (=> Light-weight tag)
  3. git tag -a v1.3 (=> Annotated tag )
  4. git tag with the -a, -s, or -m options
    • git tag
    • git show v1.3
    • git tag -l *-rc*
    • git tag -l "v2.0*"
    • git tag -a -f v1.3
    • git push origin v1.3
    • git checkout v1.3
    • git tag -d v1.3

git log

Chạy git log cho ra danh sách commits trên branch  với thông tin cần thiết. Một output đơn giản có thể là:

commit 15f4b6c44b3c8344caasdac9e4be13246e21sadw
 Author: Alex Hunter <alexh@gmail.com>
 Date:   Mon Oct 1 12:56:29 2016 -0600

git reset

Để reset index và thư mục đang chạy với lần commit cuối cùng, git reset command được dùng. Cách dùng:

git reset --hard HEAD

git rm

git rm có thể được dùng để loại bỏ files từ trong index và thư mục đang hoạt động. Cách dùng:

git rm filename.txt

git stash

Là một trong số ít lệnh cơ bản ít được biết đến, git stash giúp bạn lưu lại thay đổi mà chưa được commited ngay lập tức, nhưng tạm thời. Sử dụng:

git stash

git show

Để hiển thị thông tin về bất kỳ git object nào, hãy dùng git show. Ví dụ:

git show

git fetch

git fetch cho phép user tải tất cả object từ remote repository mà không có trên thư mục local. Ví dụ sử dụng:

git fetch origin

git ls-tree

Để hiện tree object với tên và mode của mỗi item, và giá trị blob’s SHA-1, sử dụng command, hãy dùng command git ls-tree. Ví dụ:

git ls-tree HEAD

git cat-file

Sử dụng giá trị SHA-1, hiển thị loại của object bằng cách dùng command git cat-file. Ví dụ:

git cat-file –p d670460b4b4aece5915caf5c68d12f560a9fe3e4

git grep

git grep giúp người dùng tìm kiếm qua nội dung dạng cây cho cụm từ và từ. Ví dụ, để tìm từ www.hostinger.com trong tất cả các file:

git grep "www.hostinger.vn"

gitk

gitk là một giao diện đồ họa cho local repository có thể được kích hoạt bằng cách gõ và chạy:

gitk

git instaweb

Với lệnh git instaweb, một web server có thể chạy command, một web server có thể chạy trên local repository. Một trình duyệt web có thể tự động được chỉ định tới nó. Ví dụ:

git instaweb –httpd=webrick

git gc

Để tối ưu repository với garbage collection, sẽ dọn dẹp các file không cần thiết và tối ưu chúng, sử dụng:

git gc

git archive

Lệnh git archive giúp người dùng tạo file zip hoặc file tar chứa các thành phần của một cây repository. Ví dụ:

git archive --format=tar master
git archive --format=zip master

git prune

Qua lệnh git prune, objects không có bất kỳ pointers nào sẽ được xóa. Cách dùng:

git prune

git fsck

Sử dụng command git fsck để xác định lỗi của bất kỳ object

git fsck

git rebase

Lệnh git rebase được dùng để áp dụng lại commits của một branch khác.  Ví dụ:

git rebase master

Tham khảo

Hướng dẫn sử dụng git - Các lệnh cơ bản của GIT (hostinger.vn)

Git Tutorial: A Complete Beginner’s Guide — Hostinger

NHỮNG LỆNH PHỔ BIẾN TRONG GIT | CO-WELL Asia