อันนี้ผมลองมั่วๆ ทำใช้เองนะ
สร้าง
สร้าง git repository
cd root/of/projectgit init-db
เพิ่มเข้า repository
เข้าไปที่ root directory ของ project แล้วรันคำสั่ง
git add .git commit -a
แสดงความแตกต่างกับ code ก่อนหน้านี้
เช่นเมื่อมีการแก้ไข อะไรไปบางอย่างใน project แล้วอยากเทียบตอนนี้กับการ commit ครั้งล่าสุด
cd root/of/gitgit diff
แสดงว่ามีใครแก้ไขอะไรเมื่อไหร่บ้าง
git logจะแสดงว่ามีการแก้ไขโดยใคร , เมื่อไหร่ และแสดง comment ที่เขียนไว้
ตย. ผลการ git
Author: Sutean <mossila@localhost.(none)>
Date: Fri Sep 25 16:33:55 2009 +0700
Change text in helloworld
commit 05b9a561259bfbbcf5184be0d0bfa293d804adcc
Author: momo <momo@localhost.(none)>
Date: Fri Sep 25 12:05:35 2009 +0700
remove while(1) in helloworld
commit 27b96f3b59ebf663d379249b1c853d1ba8490117
Author: momo <momo@localhost.(none)>
Date: Fri Sep 25 11:58:23 2009 +0700
Init git
Branch
การทำสำเนา source code แยกออกมาจะ code หลัก(master) และเมื่อแก้ไขเสร็จค่อยนำมารวมกันอีกครั้ง(merge)
ตัวอย่างการทำ branch ตั้งแต่เริ่ม project
สร้าง project สำหรับ git
mkdir examcd exam
git init-db
cat > hellomaster.c
#include <stdio.h>
int main () {
printf ("Hello master plant.\n");
}
<กด ctrl+d>
git add .
git commit -a -m "Init"
สร้าง branch
ใช้ git branch
ตรวจสอบว่ามี branch อะไรอยู่บ้าง ผลในตอนแรกขณะยังไม่ได้สร้าง branch อะไรเลยจะเป็นแบบนี้
$ git branch* master
สร้าง branch ด้วยคำสั่ง
$ git branch <ชื่อ branch>$ git branch hello
$ git brachh
hello
* master
$
ใช้ git checkout
เราสามารถ สร้าง branch และ switch ไปทันทีได้ด้วยคำสั่ง
git branch -b <ชื่อ branch ใหม่>$ git branch -b hellogit
$ git status
# On branch hellogit
nothing to commit (working directory clean)
$ git branch
hello
* hellogit
master
เปลี่ยน branch
เปลี่ยน branch ด้วยคำสั่ง checkout. เมื่อมีการเปลี่ยน branch ใหม่ครั้งแรกจะมี code เหมือนเดิมทุกประการ
$ git checkout hello$ git status
# On branch hello
nothing to commit (working directory clean)
$ ls
hello.c
git status ที่ต่อจากบรรทัด git checkout คือการแสดงว่าเราอยู่ที่ branch ไหนในที่นี้คือ branch hello. เมื่อเราลอง ls ดูจะเห็นว่ามี hello.c ของเดิมอยู่ด้วย
ลองแก้ไขใน branch นี้
$ rm hello.c$ git commit -a -m "remove hello from master"
Created commit 3288d10: delete hello.c of master
1 files changed, 0 insertions(+), 6 deletions(-)
delete mode 100644 hello.c
$ ls
$
ลองลบ hello.c ของ master ทิ้งเลย, แล้วค่อยลอง switch กลับไปที่ master
$ git checkout masterSwitched to branch "master"
$ ls
hello.c
$
จะเห็นว่า hello.c ของ master ยังอยู่ :)
revert version of file
เรียกคืนไำฟล์ version ก่อนหน้า
git checkout master~2 <filename>เรียกไฟล์ของ branch master เมื่อ 2 รุ่นก่อนกลับมา
และในอีกกรณีคือการลบไฟล์ผิด(ยังไม่ได้ commit) สามารถเรียกกลับมาได้แบบนี้
git checkout <filename>หรือหลายไฟล์ด้วย
git checkout *
ไม่มีความคิดเห็น:
แสดงความคิดเห็น