havietduc91 / experience

0 stars 0 forks source link

Experience Use Github #6

Open havietduc91 opened 10 years ago

havietduc91 commented 10 years ago

Style:: comment, issue ... https://help.github.com/articles/github-flavored-markdown

Example : Function:

function test() {
  console.log("notice the blank line before this function?");
}

Code::

require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts
Table:: First Header Second Header
Content Cell Content Cell
Content Cell Content Cell
OR: First Header Second Header
Content Cell Content Cell
Content Cell Content Cell
OR: Name Description
Help Display the help window.
Close Closes a window

Strikethrough:: Mistaken text.

havietduc91 commented 9 years ago

GIT WORKFLOW

Clone

  1. Clone the repository: git clone https://github.com/{user}/{project_name}.git .

Using branches

Developer MUST create branch for each task, bugfix or hotfix. Feature branches are always created from master branch. The naming convention is as follows:

{TYPE}-{description}

{TYPE} = TASK/BUGFIX/HOTFIX
{description} = Short description, e.g. the task title 

Complete a TASK (or bugfix|hotfix)

  1. SHELL

    git checkout master
    git pull master
  2. SHELL: Create a feature branch (FB)

    git checkout -b TASK-small-description master
  3. SHELL: Commit and publish your new codes.

    git commit -am "TASK small description"
    git push TASK-small-description
  4. BITBUCKET: Create a pull request (PR) from the feature branch and add reviewes The PR will be prefixed by [WIP].
  5. Wait for the code reviews (CR) which should happen in a "half day". If not, beat the reviewers. With coding convention, reviewer will follow PSR-2 https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
  6. SHELL: Fix and commit codes according to the review comments (CR).

    git commit -am "CR-FIX ... Remove unused code or something like that"
    git push TASK-small-description
  7. GITHUB: Communicate reviewers when you have fixed and commented everything that you are going to. Leave a comment to the PR, for example.
  8. Wait for the second round of the CR. Then fix the codes again. Third round etc.
  9. GITHUB: When the PR is removed prefix [WIP] and approved by the reviewers, merge it.
  10. Test again in your env
  11. Beer.
havietduc91 commented 9 years ago
havietduc91 commented 9 years ago
havietduc91 commented 9 years ago
Câu lệnh này để xóa các file mới thêm vào và các file đã thay đổi mà chưa commit (chưa push (commit rồi nhưng chưa push)?)
havietduc91 commented 9 years ago
havietduc91 commented 9 years ago

Trường hợp muốn chuyển sang git ssh tự động authenticate mà ko cần pull lại code từ đầu (ko dùng git clone git@github.com:havietduc91/cover.git)

Bước này để xóa đi remote https://github.com/havietduc91/cover.git
Bước này để add remote là git@github.com:hitomedia/aj4.git
Bước này để tao ra ssh-key mới
Vào trong đây để lấy đươc ssh-key
havietduc91 commented 9 years ago

Git Branch

Description Command Lấy danh sách BRANCHES trên server về git branch -a

git checkout  --no-track  -b  tên_branch_mới  tên_branch_cha
git push -u origin new_branch
git checkout tên_branch_muốn_switch_sang --
git merge tên_branch_muốn_merge_với_branch_hiện_tại
git branch -d tên_local_branch

Ví dụ: 1: switch sang branch develope : git checkout develope -- 2: git pull 3: git checkout toninh_inventory_develope -- 4: git merge develope 5: git push //create branch git checkout --no-track -b tên_branch_mới tên_branch_cha //ket noi branch neu quen khi tao branh ma k cho thua ke git branch --set-upstream-to=origin/branch_local branch_server git push -u origin new_branch // git push -u origin duy_inventory_develope //day mot branch len server git push origin duy_inventory_develope

git branch -d the_local_branch
git push origin :the_remote_branch
havietduc91 commented 9 years ago

Khi bị lỗi không pull được có thể do Báo Try git branch --set-upstream-to=origin/master master:

Thử cách này:
git branch --set-upstream-to=origin/master master
havietduc91 commented 9 years ago
havietduc91 commented 9 years ago
havietduc91 commented 9 years ago

Cách xử lý khi muốn lấy code từ master về nhưng lại ko dùng được git rebase do conflict quá nhiều

git checkout master [9:53:31 AM] NTQ Anh Trường: git pull origin master [9:53:39 AM] NTQ Anh Trường: update branch master o local cua em di

giờ git checkout sang cái branch của em [10:00:39 AM] NTQ Anh Trường: m2 gì gì đó

git pull origin feature/tus-m2_screen... [10:01:23 AM] NTQ Anh Trường: lôi code mới nhất trên github ở branch đấy về [10:01:29 AM] NTQ Anh Trường: chắc là nó sẽ báo up to date

git merge --no-ff master [10:02:31 AM] NTQ Anh Trường: để nó merge branch master ở local vào branch của em

đang giải quyết đây mà [10:09:45 AM] NTQ Anh Trường: em sửa conflict đi [10:09:58 AM] NTQ Anh Trường: rồi git add <file bị conflict> [10:10:03 AM] NTQ Anh Trường: add lần lượt từng file 1 [10:10:09 AM] NTQ Anh Trường: sau đó git status anh xem

git add vào chưa?

git commit -m "Merge branch master" [10:15:52 AM] NTQ Anh Trường: rồi git push origin feature/tus-m2...

git commit -a -m anh nhỉ, nhiều file quá [10:16:30 AM] Hà Việt Đức : bỏ 2 file modify kia ra [10:16:45 AM] Hà Việt Đức : Vagrant và rikkyo.json

sao phải -a làm gì? [10:17:11 AM] NTQ Anh Trường: k phải bỏ gì cả, em gửi gõ lệnh git commit anh gửi vừa nãy là đc [10:17:19 AM] Hà Việt Đức : dạ vầng anh [10:17:40 AM] Hà Việt Đức : git commit -m "Merge branch master" [10:17:52 AM] Hà Việt Đức : lệnh này nó có đẩy 2 file kia ko anh nhỉ? [10:18:01 AM] NTQ Anh Trường: ko [10:18:07 AM] NTQ Anh Trường: 2 file đấy đã đc staged đâu [10:18:21 AM] NTQ Anh Trường: Nó chỉ đẩy các file nào đã đc stage thông qua lệnh git add thôi [10:18:35 AM] NTQ Anh Trường: cái lệnh git add là lệnh để em thêm các file em muốn commit [10:18:45 AM] NTQ Anh Trường: 2 file kia em có git add đâu mà nó đc commit

havietduc91 commented 9 years ago

@all: về vụ merge code từ master thì mọi người lưu ý 1 điểm sau nhé Nếu code ở branch feature đã push lên github rồi (trước đó đã rebase với master rồi) thì cần làm các step sau:

  1. Checkout sang master: git checkout master
  2. Pull latest: git pull origin master
  3. Checkout sang feature: git checkout feature/tus-xxxx
  4. Merge code: git merge --no-ff master
  5. Test lai code sau khi da merge voi master va push len github
havietduc91 commented 9 years ago

Em hỏi anh chút

  1. Git stash save (ở bracnh feature/tus-xxxx)
  2. Checkout sang master: git checkout master
  3. Pull latest: git pull origin master
  4. Checkout sang feature: git checkout feature/tus-xxxx

Giờ em nên git stash pop trước hay là git merge --no-ff master trước vậy anh?

Trả lời: Sẽ xử lý git merge --no-ff master trước, trong trường hợp conflict thì thực hiện sửa các file conflict đó, sau đó git add các file conflict đó!

Tiếp git commit -m 'merge branch master'

Rồi git stash pop

havietduc91 commented 9 years ago

Hướng dẫn cách add ssh key dễ dàng

An SSH key allows you to establish a secure connection between your computer and GitLab.

Before generating an SSH key, check if your system already has one by running cat ~/.ssh/id_rsa.pub. If you see a long string starting with ssh-rsa or ssh-dsa, you can skip the ssh-keygen step.

To generate a new SSH key, just open your terminal and use code below. The ssh-keygen command prompts you for a location and filename to store the key pair and for a password. When prompted for the location and filename, you can press enter to use the default.

It is a best practice to use a password for an SSH key, but it is not required and you can skip creating a password by pressing enter. Note that the password you choose here can't be altered or retrieved.

ssh-keygen -t rsa -C "havietduc91@gmail.com" Use the code below to show your public key.

cat ~/.ssh/id_rsa.pub Copy-paste the key to the 'My SSH Keys' section under the 'SSH' tab in your user profile. Please copy the complete key starting with ssh- and ending with your username and host.

Use code below to copy your public key to the clipboard. Depending on your OS you'll need to use a different command:

Windows:

clip < ~/.ssh/id_rsa.pub

Vào https://github.com/settings/ssh để add ssh-key mới

git pull (test & enjoy!)

havietduc91 commented 9 years ago

Hủy bỏ commit gần nhất mà chưa push lên server?? CẦN TEST LẠI

git reset --soft HEAD~1

havietduc91 commented 9 years ago

Hiển thị các commit chưa được push

git log origin/master..HEAD

Remove các commit chưa được push

git reset --hard origin/master

havietduc91 commented 8 years ago
Trường hợp unmerge, conflict và không thể pull được
havietduc91 commented 8 years ago
Trường hợp unmerge, conflict và không thể pull được
havietduc91 commented 8 years ago
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

screenshot from 2016-03-25 14-19-34

--> Tham khao tai day http://stackoverflow.com/questions/12940626/github-error-message-permission-denied-publickey

GitHub isn't able to authenticate you. So, either you aren't setup with an SSH key, because you haven't set one up on your machine, or your key isn't associated with your GitHub account.

You can also use the HTTPS URL instead of the SSH/git URL to avoid having to deal with SSH keys. This is GitHub's recommended method.

Further, GitHub has a help page specifically for that error message, and explains in more detail everything you could check.

Step 1: Generating an SSH key

https://help.github.com/articles/generating-an-ssh-key/

Step 2: Setting up Git

https://help.github.com/articles/set-up-git/

Step 3: Error: Permission denied (publickey)

https://help.github.com/articles/error-permission-denied-publickey/

OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/you/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [192.30.252.131] port 22.

ssh -T billy.anyteen@github.com Permission denied (publickey).

ssh -T git@github.com Hi username! You've successfully authenticated...

havietduc91 commented 8 years ago
Bỏ các thay đổi đã dùng git add, git delete mà ko muốn commit lên

=> http://stackoverflow.com/questions/348170/undo-git-add-before-commit

git reset
havietduc91 commented 8 years ago
convert line ending sang LF trước khi commit
git config --global core.autocrlf true
havietduc91 commented 8 years ago
Lấy code từ branch từ một remote khác

screenshot_2

havietduc91 commented 8 years ago
git remote add

https://help.github.com/articles/configuring-a-remote-for-a-fork/

git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
git remote -v
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
havietduc91 commented 8 years ago
Rename remote

git remote -v git remote rename origin upstream

havietduc91 commented 7 years ago

Muốn config mà không cần authen

git config --global credential.helper "cache --timeout=3600"