Category Archives: Git

Giải pháp để fix production bugs bằng Git Stash

Giả sử trường hợp là project chúng ta đang làm ổn định. Và chúng ta đã đi được gần hết task, đùng 1 cái thì cấp trên báo rằng có bug trên live, nhờ ta fix. Vậy giải pháp lúc đó là như thế nào?

GIT

Đầu tiên bạn gọi:
git stash
# Lệnh này sẽ save lại những việc bạn đã làm trong task vừa qua và cất nó đi 1 nơi an toàn nào đó, đồng thời code se quay về thời điểm trước khi ta commit (tức là = với git reset –hard)

Sau đó bạn fix production bugs, và commit, sau đó up lên live luôn.

Sau khi done việc mà cấp trên báo, giờ là lúc bạn keep working những việc bạn đang làm dở dang. Lúc này bạn chỉ việc gọi:
git stash pop
# Lệnh này sẽ cut những file bạn đã change trước đó, và paste vào project của bạn(tương tự git pull trên server về). Việc còn lại là resolve những file bị conflict nếu có.

Tổng hợp lại git stash giống như là pause công việc của bạn lại, và sau đó git stash pop sẽ giúp bạn continue tiếp sau khi bạn pause.

Simple Git workflow

#master
	1) git pull origin master
	2) git checkout -b weekly-news
		-> weekly-news
		...
	9) git pull origin master
	10)git merge --no-ff weekly-news
#weekly-news
	3) git fetch origin
	4) git rebase origin/master
	5) git rebase origin/weekly-news
	6) git push origin weekly-news
	7) git rebase -i origin/master
	8) git checkout master
		-> master

Add Git’s branch name to the commit message

Add [PROJECT]/.git/hooks/commit-msg script:

#!/bin/sh
#
# Automatically adds branch name and branch description to every commit message.
#
NAME=$(git branch | grep '*' | sed 's/* //')
if [ -n "$NAME" ] 
then
   MIDDLE=': '
fi
DESCRIPTION=$(git config branch."$NAME".description)
echo "$NAME""$MIDDLE"$(cat "$1") > "$1"
if [ -n "$DESCRIPTION" ] 
then
   echo "" >> "$1"
   echo $DESCRIPTION >> "$1"
fi 

1

Rebasing Merge Commits in Git

# Branch Master

git checkout -b 'survey'

# Branch Survey

-- make some changes 1
git add -Af
git commit -m 'fix bug 1'
-- make some changes 2
git add -Af
git commit -m 'fix bug 2'
-- return master
git checkout master

# Branch Master

-- make some changes 3
git add -Af
git commit -m 'fix bug 3'
-- make some changes 4
git add -Af
git commit -m 'fix bug 4'

Continue reading Rebasing Merge Commits in Git

Fix bug: Tortoise Git Icon overlays not showing up

1
1. Go to Run > regedit in windows.
2. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
3. Export the ShellIconOverlayIdentifiers registry entry just incase.
4. Delete all the keys under ShellIconOverlayIdentifiers beginning with Tortoise.
5. Uninstall tortoisegit. Reinstall tortoisegit.
6. Now you should see keys added under ShellIconOverlayIdentifiers beginning from TortoiseAdded until TortoiseUnversioned.
7. Go to tortoisegit settings and set the icon set to Modern (I didn’t try others but it should work as long as all the Tortoises use the same set).
8. Set all other Tortoises you have to use the Modern icon set.
9. Now restart your computer and it should work.