Phần 1: Làm quen với GIT ở local

  • Bước 1: Lên mạng Download GIT và cài đặt

  • Bước 2: Tạo thư mục DEMO-GIT

  • Bước 3: Vào thư mục kích phải chuột chọn GIT BASH

  • Bước 4: Tạo file sử dụng echo

echo "This is first file" > file1.txt
  • Bước 5: Làm quen với git add:

    • git add . : Có nghĩa là add hết tất cả các file có trong thư mục DEMO-GIT lên không gian lưu trữ

    • git add [filename] : Có nghĩa là add file có tên [filename] lên không gian lưu trữ

  • Bước 6: Làm quen với git status:

    • git status: Có nghĩa là thể hiện trạng thái các file trong thư mục có được đưa lên không gian lưu trữ hay chưa.
  • Bước 7: Làm quen với git commit:

    • git commit -m "comment": Chính thức up file lên khu vực sẵn sàng
  • Bước 8: Làm quen với git reset:

    • git reset HEAD~1: Quay về trạng thái trước đó 1 lần
  • Bước 9: Làm quen với git log

    • git log: Dùng để lưu lại lịch sử commit - Trong đó mỗi commit đều có mã riêng
  • Bước 10: Làm quen với git revert

    • git revert + [mã commit] (Để lấy được mã commit ta dùng git log) : Cái này có chức năng quay lại các commit trong lịch sử
  • Bước 11: git config --global user.name "kontonfon"

  • Bước 12: git config --global user.email "kontonfon@gmail.com"

Phần 2: Đưa local lên github

  • Bước 1: Tạo tài khoảng trên GITHUB

  • Bước 2: Là tạo repository mới (bằng cách kích chuột vào bên cạnh profile góc trên cùng bên phải)

  • Bước 3: Sau khi tạo xong ta làm các bước hướng dẫn như trong đó họ hướng dẫn

  • Bước 4: Các bước 3 cụ thể như sau:

    • Ở gitbash ta nhập : git init

    • git commit -M main : Để chuyển từ nhánh master sang nhánh main

    • git remote set-url origin https://github.com/kontonfon/GIT-DEMO.git

    • git push -u origin main

Phần 3: Add file README.md edit file README.md và tương tác ngược lại với local

  • Bước 1: Trên github, nếu đã có file README.md thì ta chỉ cần edit, còn nếu chưa có ta chỉ việc add README.md và edit nó và sau đó nhấn “commit new file”

  • Bước 2: Sử dụng câu lệnh git pull origin main để có thể có được bản update mới nhất từ github về local (cái này rất hữu ích khi bạn phải làm việc nhóm)

Phần 4: Mời đồng nghiệp vào cùng một dự án trong GIT (Invite a collaborator)

  • Bước 1: Vào github -> Chọn mục setting -> Manage access -> Invite a collaborator

  • Bước 2: Nhập username (hoặc fullname, email) của đồng nghiệp bạn muốn tham gia cùng dự án -> Add [username] vào dự án

Phần 5: Giả sử ta có đồng nghiệp tên là X đã tham gia vào dự án, và bây giờ ta bắt đầu làm việc chung

  • Bước 1: Vì mình chỉ có một máy thôi nên giả sử đồng nghiệp X đang ở máy ảo Kali còn mình là kontonfon làm việc trên máy chính

  • Bước 2: Đồng nghiệp X sẽ vào tài khoản github của mình, tiếp theo vào dự án DEMO-GIT, tạo một nhánh tên là developer (ở chỗ mục select nhánh trên github)

Imgur

  • Bước 3: Ở nhánh developer ta tạo một file có tên là test3.txt có nội dung là : “this is a third file” -> Commit new file. Sau đó ta sẽ thấy một dòng chữ xuất hiện đó là Compare & pull request

Imgur

  • [Upgrade pro - không cần thiết] Bước 4: Ta vào lại setting -> Branches -> Upgrade

  • Bước 5: Quay lại nick của kontonfon, vào settings -> Kéo xuống cuối cùng tới phần Danger Zone -> Change visibility -> Make public

  • Bước 6: Vào lại Settings -> Branches -> Nhập vào chỗ Branch name pattern: main

  • Bước 7: Tại Protect matching branches -> Tick chọn Require pull request reviews before mergin -> Nhấn chọn create.

  • Bước 8: Quay lại Đồng nghiệp X, ta nhấn chọn compare & pull request, sau đó ta comment vào , nó sẽ xuất hiện lỗi đó là cần review required

Imgur

  • Bước 9: Quay lại nick kontonfon, vào chỗ Pull requests ta sẽ thấy được đoạn comment lúc nãy !

Imgur

  • Bước 10: Kích chuột vào Create test3.txt, ta sẽ thấy được toàn bộ lỗi đó và kích vào Add your review, sau đó kích vào Review changes, sau đó nhập vào comment “Approved” , tích chọn Approve và chọn Submit review

Imgur

  • Bước 11: Ta nhấn vào Merge pull request -> confirm merge

  • Bước 12: Lúc này ta đã thấy nhánh developer đã merge vào nhánh main

Imgur

Phần 6: Setting SSH

  • Bước 1: Ở nick kontonfon, chúng ta vào profile -> Settings -> SSH và GPG Keys -> Chọn New SSH keys

  • Bước 2: Vào ổ đĩa C -> User -> Admin [ở đây tuỳ máy nhé] -> .ssh

  • Bước 3: Tại thư mục .ssh -> Nhấn nút phải chọn git bash

  • Bước 4: Sau đó ta nhập ssh-keygen -t rsa -b 4096 -C "kontonfon@gmail.com"
    Chú ý: -C : Từ C viết hoa nhé 
    
  • Bước 5: Nếu bạn nào thích nhập password thì nhập, còn không thì cứ Enter là được

  • Lúc này ở thư mục .ssh nó sẽ tự động sinh key cho chúng ta

Imgur

  • Bước 6: Lúc này ta quay lại chỗ github, điển vào title: ssh keys và sau đó mở file id_rsa.pub để copy key vào chỗ key nhé ! và nhấn Add SSH key là xong

Imgur

Imgur

Imgur

Imgur

  • Bước 7: Quay lại github ban đầu và vào thực mục DEMO, ta tạo một thư mục mới có tên là sshkeytesting để test SSH thử nhé !

Imgur

  • Bước 8: Tại thư mục này, ta mở git bash lên, sau đó nhập git init, sau đó ta vào lại github, lấy đường link clone theo SSH: git@github.com:kontonfon/GIT-DEMO.git

Imgur

Imgur

Imgur

OK, như vậy là ta đã hoàn tất phần setting SSH

Phần 7: Thực hiện các lệnh tạo branch ở local và làm quen với git base

  • Bước 1: Ta vào thư mục GIT-DEMO, nhấn chuột phải chọn git bash

  • Bước 2: gõ lệnh git branch để xem nhánh hiện tại

  • Bước 3: gõ lệnh git branch developer: Thêm nhánh developer vào vùng kiểm soát

  • Bước 4: Gõ lệnh git branch: Lúc này ta sẽ thấy có 2 nhánh hiện ra là: developermain, dấu * thể hiện ta đang thực thi quyền trên nhánh main

Imgur

  • Bước 5: Gõ lệnh git checkout developer để chuyển sang nhánh main làm việc. Ta có thể sử dụng lại lệnh git branch để kiểm tra

  • Bước 6: Ta dùng lệnh ls để liệt kê các thư mục

  • Bước 7: Ta lại gõ lệnh git checkout main: Để quay lại nhánh main

  • Bước 8: Ta gõ lệnh git branch feature1: Để tạo nhanh feature1, nhưng mới ở chỉ local thôi nhé

  • Bước 9: Gõ lệnh git branch để xem những nhánh ta đang hoạt động

  • Bước 10: Gõ lệnh git switch feature1: Để chuyển quyền thực thi sang nhánh feature1

  • Bước 11: Gõ lệnh echo "this is feature1" > f1.txt

  • Bước 12: Gõ lệnh git switch developer để chuyển sang nhánh developer

  • Bước 13: Gõ lệnh echo "this is developer branch first file" > dev1.txt

  • Bước 14: Gõ lệnh git add .

  • Bước 15: Gõ lệnh git commit -m "dev first file"

  • Bước 16: Gõ lệnh git status

  • Bước 17: Gõ lệnh git switch feature1. Sau đó gõ lệnh ls

  • Bước 18: Gõ lệnh git status. Thì thấy file f1.txt chưa được . Nếu chưa thấy thì ta tạo thêm file f2.txt bằng câu lệnh echo "this is f2" > f2.txt

  • Bước 19: Gõ lệnh git add . Sau đó gõ lệnh git commit -m "first feature file". Sau đó gõ lệnh git status để kiểm tra

  • Bước 20: Gõ lệnh git switch developer để chuyển sang nhánh developer

  • Bước 21: Gõ lệnh git branch -D feature1 để xoá nhánh feature1

  • Bước 22: Gõ lệnh git branch để hiển thị lại thông tin các nhánh. Khi đó ta sẽ thấy những gì tạo ở nhánh feature1 sẽ bị biến mất trong nhánh developer

  • Bước 23: Gõ lệnh echo "this is our second dev file" > dev2.txt

  • Bước 24: Gõ lệnh git add . và sau đó gõ lệnh git commit -m "second file", cuối cùng dùng lệnh git status để kiểm tra

  • Bước 25: Gõ lệnh git log để xem lịch sử

  • Bước 26: Gõ lệnh git reset HEAD~1: Để quay lại commit trước đó 1 lần, và sau đó dùng lệnh git status để kiểm tra. Lúc này ta sẽ thấy file dev2.txt chưa được đưa lên không gian lưu trữ

Imgur

  • Bước 27: Gõ lại lệnh git add . và sau đó gõ lệnh git status , lúc này file dev2.txt đã sẵn sàng trên khu vực dự trữ

Imgur

  • Bước 28: Gõ lệnh git commit -m "second file" và sau đó gõ lệnh git status

  • Bước 29: Vào github của kontonfon sau đó vào nhánh developer

  • Bước 30: Quay lại git bash sau đó gõ lệnh git pull origin developer, sau đó bấm ls

Imgur

  • Bước 31: Gõ lệnh git push origin developer và ta thấy hình ảnh này trên github

Imgur

  • Bước 32: Ta vào nhánh developer trên github. Tiếp theo ta gõ git log trên git bash copy mã commit của second file

Imgur

  • Bước 33: Gõ lệnh git revert + mã commit và sao đó gõ lệnh ls, ta sẽ thấy được file dev2.txt đã biến mất

Imgur

  • Bước 34: Gõ lệnh git push origin developer, sau đó quay lại github, lúc này ta thấy file dev2.txt trên github cũng đã mất !
Trước khi revert

Imgur

Sau khi revert

Imgur

  • Bước 35: Sau đõ gõ lệnh echo "second file" > dev2.txt , sau đó gõ lệnh status

Imgur

  • Bước 36: Gõ lệnh git add . và sau đó gõ lệnh git commit -m "second file" và sau đó gõ lệnh git status. Cuối cùng gõ lệnh ls

  • Bước 37: Gõ lệnh git rm dev2.txt , và gõ lệnh ls

Imgur

  • Bước 38: Gõ lệnh git status

Imgur

  • Bước 39: Gõ lệnh git commit -n "deleted dev2.txt" và sau đó gõ git status rồi gõ lệnh ls

  • Bước 40: Gõ lệnh git branch và tìm hiểu git base

Imgur

  • Bước 41: Gõ lệnh echo "second file" > dev2.txt và gõ lệnh echo "third file" > dev3.txt, rồi gõ lệnh git status

Imgur

  • Bước 42: Gõ lệnh git add . và lệnh git commit -m "second and third dev file", sau đó gõ lệnh git statusls

Imgur

  • Bước 43: Gõ lệnh git switch main và gõ lệnh ls

  • Bước 44: Gõ lệnh git rebase developer và gõ lệnh ls

Imgur

  • Bước 45: Gõ lệnh git switch developer và gõ ls

  • Bước 46: Gõ lệnh git push origin developer

  • Bước 47: Vào github và vào pull requests vào đó gõ comment adding dev2 and dev3 file và nhấn Create pull request

Imgur

  • Bước 48: Vào Assignees và thêm những thành viên được merge

  • Bước 49: Kích vào Merge pull request , sau đó tích vào Use your administrator privileges to merge this pull request và nhấn Confirm merge

  • Bước 50: Quay lại nhánh main ta thấy được mọi thứ đã được merge xong !

Phần 8: Làm quen với merge và xử lý conflict khi merge ở local

  • Bước 1: Xem sơ đồ branching strategy

Imgur

  • Bước 2: Vào github của kontonfongit clone về và di chuyển vào thư mục GIT-DEMO

  • Bước 3: Xem sơ đồ thể hiện sự khác nhau giữa mergerebase

Imgur

  • Bước 4: Mở git bash và gõ lệnh git branch -a. Sau đó gõ lệnh git branch developer

  • Bước 5: Lại gõ lệnh git branch -a và gõ lệnh git switch developer

  • Bước 6: Gõ lệnh git switch main

  • Bước 7: Gõ lệnh git branch feature sau đó gõ lệnh git branch -a

Imgur

  • Bước 8: Gõ lệnh git switch feature và gõ lệnh ls

Imgur

Một điều chú ý là khi ta tạo nhánh mới thì nhánh này sẽ chứa tất cả nội dung có trong nhánh main
  • Bước 8: Gõ lệnh notepad test3.txt và edit lại nội dung của file này như sau:

Imgur

  • Bước 9: Gõ lệnh cat test3.txt để có thể thấy được nội dung trực tiếp ở git bash

Imgur

  • Bước 10: Gõ git status , sau đó gõ git add . và kiểm tra lại bằng git status

Imgur

  • Bước 11: Gõ lệnh git commit -m "modified third file"git status

  • Bước 12: Gõ lệnh git switch mainls. Sau đó gõ lệnh notepad test3.txt với nội dung:

Imgur

  • Bước 13: Gõ lệnh git status, tiếp theo git add . và cuối cùng là git commit -m "updated third file"

Imgur

  • Bước 14: Gõ lệnh git merge feature , ta sẽ thấy thông báo xuất hiện conflict

Imgur

  • Bước 15: Vào trang meldmerge.org và tải Meld Installer về,

Imgur

  • Bước 18: Ta tiến hành cài đặt Meld Installer, sau khi cài xong, ta mở Meld lên và sau đó tắt đi.

  • Bước 19: Ta vào ổ đĩa C/User/Admin/ và mở file .gitconfig bằng notepad.

Imgur

  • Bước 20: Ta config file .gitconfig như sau:

Imgur

Sau khi config xong ta sẽ thấy một điều vi diệu xuất hiện như sau:

Imgur

  • Bước 21: Ta gõ lệnh git mergetool, và giao diện meld sẽ xuất hiện.

Imgur

  • Bước 22: Sau đó ta nhấn vào dấu mũi tên như hình vẽ:

Imgur

Và kết quả là:

Imgur

sau đó chúng ta nhấn nút save và tắt giao diện meld.
Chú ý trước khi save, ta phải đưa con trỏ chút vào vùng giữa
  • Bước 23: Ta gõ lệnh git status , tiếp theo là gõ lệnh git commit -m "merge conflict"

Imgur

  • Bước 24: Gõ lệnh lscat test3.txt

Phần 9: GIT FLOW

  • Bước 1: Vào nick kontonfon, tạo new repository với tên là GIT-FLOW-DEMO, sau đó bấm craete reposity

  • Bước 2: Ta git clone reposity này về local

  • Bước 3: Ta mở git bash lên và gõ lệnh git clone https://github.com/kontonfon/GIT-FLOW-DEMO.git

  • Bước 4: Ta vào thư mục GIT-FLOW-DEMO , và vào git bash gõ lệnh git flow init , sau đó ta liên tục bấm phím Enter, ta sẽ được ảnh như hình vẽ

Imgur

Ps: Chú ý lúc này ta đang ở nhánh develop
  • Bước 5: Gõ lệnh git branch -a trên git bash

  • Bước 6: Gõ lệnh git push --set-upstream origin develop

Imgur

Imgur

Ps: Lúc này ta thấy xuất hiện hai branch trên github
  • Bước 7: Gõ lệnh git flow feature start feature1.0

Imgur

  • Bước 8: Gõ lệnh git branch -a

  • Bước 9: Gõ lệnh echo "this is feature1.0 file" > f1.html và sau đó gõ lệnh git status

  • Bước 10: Gõ lệnh git add .

Imgur

  • Bước 11: Gõ lệnh git commit -m "feature branch commit"

  • Bước 12: Gõ lệnh git flow feature finish feature1.0

Imgur

  • Bước 13: Gõ lệnh ls và sau đó gõ lệnh git branch -a

Imgur

  • Bước 14: Gõ lệnh git switch main và sau đó gõ lệnh ls

Imgur

  • Bước 15: Gõ lệnh git checkout develop và gõ lệnh git push origin

Imgur

  • Bước 16: Gõ lệnh git flow release start release1.0 và gõ lệnh git branch -a

Imgur

  • Bước 17: Gõ lệnh git push --set-upstream origin release/release1.0

Imgur

  • Bước 18: Gõ lệnh echo "release notes" > release.txt, sau đó gẽ lệnh git add .

  • Bước 19: Gõ lệnh git commit -m "release notes"

  • Bước 20: Gõ lệnh git push và sau đó là lệnh git push origin

Imgur

  • Bước 21: Gõ lệnh git flow release finish release1.0 và đó gõ 1.0

Imgur

Ps: Khi kết thúc câu lệnh này, nhánh release sẽ merge vào nhánh developer
  • Bước 22: Gõ lệnh ls và lệnh git switch main và sau đó lại gõ lệnh ls

Imgur

  • Bước 23: Gõ lệnh git push origin

Imgur

  • Bước 24: Gõ lệnh git tag -l và lệnh git switch develop

Imgur

  • Bước 25: Gõ lệnh git flow hotfix start hotfix1.0

Imgur

  • Bước 26: Gõ lệnh git branch -a và gõ echo "application bug fixes" > fix.html

Imgur

  • Bước 27: Gõ lệnh git status, sau đó git add . và cuối cùng git commit -m "hotfix"

Imgur

  • Bước 28: Gõ lệnh git flow hotfix finish hotfix1.0
Ps: Nếu dùng Vim bạn nên gõ :wq để lưu và thoát, còn ở đoạn gõ tag bạn có thể gõ 1.0
  • Bước 29: Gõ lệnh git branch -a và lệnh ls

Imgur

  • Bước 30: Gõ lệnh git switch mainls, cuối cùng là git push origin

Imgur

  • Bước 31: Gõ lệnh git tag -l

Phần 10: GIT trong Vscode và Intellij

  • Bước 1: Vào github nick kontonfon tạo new repository với tên VSCODE-GIT-DEMO sau đó ta copy link để clone https://github.com/kontonfon/VSCODE-GIT-DEMO.git

  • Bước 2: Ta mở vscode lên và vào chỗ biểu tượng git

Imgur

  • Bước 3: Ta chọn clone Repository sau đó copy link clone vào chỗ này:

Imgur

  • Bước 4: Lúc này nó hiện ra ta chỗ để ta lưu, ở đây mình chọn thư mục Dev

Imgur

Imgur

  • Bước 5: Lúc này ta thấy được hình ảnh như thế này

Imgur

  • Bước 6: Ta tạo file sample1.txt và file sample2.txt và sau đó ta mở terminal lên

  • Bước 7: Ta chọn chế độ outputgit

Imgur

  • Bước 8: Sau đó ta chọn vào biểu tưởng git

Imgur

Imgur

  • Bước 9: Ta chọn vào biểu tượng tick để bắt đầu commit

Imgur

  • Bước 10: Sau đó ta bấm yes và gõ first commit

Imgur

  • Bước 11: Sau khi bấm xong, mọi thứ đã được hoàn tất !

  • Bước 12: Ta chọn vào dấu ba chấm và chọn push

Imgur

  • Bước 13: Lúc này ta quay lại nick kontonfon và thấy mọi thứ đã được update

Imgur

  • Bước 14: Ta add README trên github

Imgur

  • Bước 15: Ta quay lại chế độ file

Imgur

  • Bước 16: Ta quay lại chế độ ba chấm và chọn pull

Imgur

  • Bước 17: Lúc này ta tiếp tục tạo một file mới có tên là sample3.txt

  • Bước 18: Ta tiếp tục lặp lại các hành động commitpush như bên trên

Imgur

  • Bước 19: Làm tương tự trên Intellj

Phần 11: Làm qurn GITLAB

Imgur

  • Bước 1: Ta register một tài khoản trên git lab

  • Bước 2: Sau khi tạo xong ta sẽ thấy giao diện sẽ như thế này

Imgur

  • Bước 3: Vào menu chọn your project và sau đó chọn project đâu tiên.

Imgur

  • Bước 4: Ta vào chỗ Clone và coply link https://gitlab.com/jumptozero2/hoatien1.git

  • Bước 5: ta vào thư mục dev , mở git bash và sau đó git clone https://gitlab.com/jumptozero2/hoatien1.git

  • Bước 6: Tiếp theo, ta di chuyển vào thư mục hoatien1 sau đó gõ lệnh git initecho "this is the first sample file" > sample1.txt

  • Bước 7: Ta gõ lệnh git status, git add .git commit -m "first sample file"
  • Bước 8: Gõ lệnh git config --global user.name "tri ngo"git config --global user.email "longtutrieu99@gmail.com" và cuối cùng gõ lệnh git config --list

Imgur

  • Bước 9: Gõ lệnh git push origin main