Introduction

Các bước cần thiết để khởi tạo một folder dùng cho dev

  1. login vào trang https://github.com/

tài khoản lamhung81.i3s@gmail.com/ mật khẩu Lh..2

2.vào trang https://github.com/PX4/Firmware

chọn nhấn vào biểu tượng Fork ở phiá trên bên phải màn hình

Khi này PX4/Firmware sẽ được fork về tài khoản https://github.com/lamhung81i3s

  • Trên máy tính Linux Ubuntu

tạo folder, ví dụ PX4_i3s

  • mở terminal mới, cd .../PX4_i3s, clone từ account dùng lệnh

git clone https://github.com/lamhung81i3s/Firmware.git

  • cd .../PX4_i3s/Firmware, kiểm tra status của folder bằng lệnh git status

cho kết quả,

On branch master

Your branch is up-to-date with 'origin/master'.

  • List các tag (version) git tag

cho kết quả,

NuttX-6.16

ardrone_flight

fixedwing_stable

stable_manual_flight

...

v1.6.4

v1.6.5

  • Chuyển sang 1 tag ổn định, ví dụ phiên bản v1.6.5

git checkout tags/v1.6.5

cho kết quả,

Note: checking out 'tags/v1.6.5'.

You are in 'detached HEAD' state. You can look around, make experimental

changes and commit them, and you can discard any commits you make in this

state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may

do so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

HEAD is now at f160743... Join us on Slack README badge

  • Kiểm tra lại status bằng lệnh git status

cho kết quả,

HEAD detached at v1.6.5

nothing to commit, working directory clean

  • Tạo một branch mới từ tag này git checkout -b AUV_i3s

cho kết quả,

Switched to a new branch 'AUV_i3s'

  • Kiểm tra status git status

cho kết quả,

On branch AUV_i3s

nothing to commit, working directory clean

  • Hiển thị các commit

git log

  • Quay về trạng thái ngay sau 1 commit nào đó

git checkout <commit>

  • Hiển thị các branch

git branch

  • Vẽ đồ thị các nhánh và các commit

    git log --all --decorate --oneline --graph

  • git add

  • git commit -m "Nội dung cần commit"

  • Clone một branch đã được tạo từ một account cá nhân của github

Ví dụ trong tài khoản lamhung81 của github, có Folder Firmware clone từ PX4/Firmware

Đầu tiên cần

git clone https://github.com/lamhung81/Firmware.git

sau đó cần hiển thị tất cả các branches

git branch -a

tiếp theo chuyển về AUV_adaptation

git checkout AUV_adaptation

You can get back to the master branch by using:

git checkout master

Pull để lấy các update về (nếu có người khác cùng phát triển) trước khi push các modification của mình lên

git pull origin AUV_adaption

sau đó cần nhập ví dụ account: lamhung81 và mật khẩu

Rồi mới được push

git push origin AUV_adaptation

Tạo 1 folder file và lưu version

Ví dụ cần tạo 1 thư mục có tên là ICSTCC_2017 và có chức năng lưu version

  1. Trên github account, tạo 1 repositoire, có tên ICSTCC_2017

  2. Trên máy tính, trên terminal, vào trong thư mục mà dự định sẽ chứa ICSTCC_2017,

git clone https://github.com/lamhung81i3s/ICSTCC_2017.git

  1. Thay đổi, thêm bớt nội dung bên trong thư mục ICSTCC_2017 vừa được tạo rồi

git add .... các file/ thư mục mới tạo

git commit -m "........"

  1. Để push, vì là ở nhánh master, do đó cần

git push -u origin master

Chú ý khi dùng git checkout

Trong trường hợp đã quay về trạng thái 1 commit nào đó đã thực hiện trong quá khứ (b...), sau đó muốn quay lại commit gần nhất (a.....) , kô được quay lại bằng cách git checkout <tên commit gần nhất >.

Nếu mà lỡ làm như vậy, mà lại tạo ra các thay đổi code trong (a...), sau đó muốn commit -m và push thì bắt buộc phải tạo ra 1 nhánh mới bằng git checkout -b <tên nhánh mới>, sau đó có thể push được lên account .

Cách tốt nhất để từ commit (b....) về gần nhất là git checkout <tên nhánh đang dùng>, sau đó thì mới được thêm hay sửa code mà khi push vẫn giữ nhánh cũ

Tao code tren local, sau do push len remote

Tao moi 1 folder, sau do: git init

Them cac file vao trong folder, sau do kiem tra : git status

Them vao git: git add fileHayFolderCanCommit

Tao commit: git commit -m " Noi dung commit"

Create a new repository on GitHub, ten la mynewrepository, ben trong tai khoan github

git remote add origin https://github.com/lamhung81/mynewrepository.git

git push -u origin master

Co khi can phai chay lenh nay truoc lenh tren: git pull origin master

Tham khao

https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners

Tao code tren local tren Windows với ứng dụng Github Desktop, sau do push len remote

Nội dung này có ích cho việc ví dụ muốn lưu một thư mục chứa các files trong quá trình viết 1 bài báo Latex

Trên chương trình Github Desktop, Chọn File/ New repository

Khi đó sẽ xuất hiện cửa sổ "Create a new repository", trên đó cần làm

Trong ô trống Name,đặt tên của Folder mà ta muốn tạo ra để lưu giữ file, ví dụ là NAMEXXX

Trong ô trống Description, viết tóm tắt nội dung của repository (folder) cần làm gì, phục vụ mục đích gì

Trong ô trống Local path, chọn folder mà ta muốn lưu trữ folder với tên đã đặt là NAMEXXX ở trên

Có thể chọn hay không tick vào Initilize this repository with a README

Sau đó ân vào Creat repository

Sau đó trên Windows explorer, truy cập vào thư mục NAMEXXX, thay đổi nội dung, ví dụ thay đổi hay thêm file hay dùng Tex editor

Quay trở lại màn hình của Github Desktop, trên tab current repository, những thay đổi trong folder NAMEXXX sẽ được hiển thị.

Cần commit bằng cách điền nội dung vào trong ô Summary (required) là bắt buộc và viết Description, sau đó ấn Commit to master

Sau đó có thể ấn vào tab Push (or Fetch origin)

Discard changes đã tạo ra trên 1 file nào đó nhưng chưa add hay commit

Gỉả sử có file aut_att_control_main.cpp. Vì lý do nào đó cần quay trở lại trạng thái của commit cũ (commit aaa) trong lích sử. Sau khi thực hiện 1 số thay đổi (ví dụ để test cái gì đó) muốn quay trở lại đúng trạng thái của commit aaa đó. Để làm như vậy,dùng lệnh

git checkout src/modules/auv_att_control/auv_att_control_main.cpp

To delete the_local_GIT branch we can try one of the following commands:

git branch -d branch_name


git branch -D branch_name

as you can see above, we have 2 different argument, one with ‘d’ and one with ‘D’.

The-doption stands for--delete, which would delete the local branch, only if you have already pushed and merged it with your remote branches.

The-Doption stands for--delete --force, which deletes the branch regardless of its push and merge status, so be careful using this one!

Delete a remote GIT branch

To delete a remote branch you can use the following command:

git push 
<
remote_name
>
 --delete 
<
branch_name
>

Alternatively, there is this other following option too, which might be just a bit hard to remember:

$ git push 
<
remote_name
>
 :
<
branch_name
>

These top options can also be used if you want to delete a “tag”.

Last updated