2015.03.27
git-ын талаар товчхон
компютерын программ хөгжүүлэхэд программын эх код-ын төлөв өдөрын тэмдэглэл мэт байнга хадгалагдаж байх нь чухал юм.
эх код өсөх тусам хяналт хийх хэцүү болдог. яг юу өөрчилсөнөө сайн санахгүй тохиолдол зөндөө таардаг. git-ын тусламжтайгаар хөгжүүлж байгаа программыг санах ойтой болгоно.
англи хэлээр git-ын талаар дэлгэрэнгүйг stackoverflow-с үзээрэй.
англи хэлээр git суулгах зарчим дэлгэрэнгүйг howto: git install.
bolor:~ bolor$ man git # git -ын талаарx товч мэдэээлэл терминалаас
git суулгах зарчим
git-ыг терминалд суурилсан линукс-ын apt-get, MacOs-ын brew, port гэх мэт программын тусламжтайгаар амархан суулгана.
1 Linux
sudo apt-get install git
2 MacOs
brew install git
git–ын хэрэглээ
git ашиглах тест прожект үүзгэе.
bolor:Desktop bolor$ mkdir myTestProject bolor:Desktop bolor$ cd myTestProject/
хоосон прожектэд ямар нэгэн файл нэмье.
bolor:myTestProject bolor$ sudo nano helloworld.c # энэ бол тест файл юм.
bolor:myTestProject bolor$ gcc -o helloworld helloworld.c bolor:myTestProject bolor$ ./helloworld ene bol test yum
үүсгэсэн прожект доторх бүх мэдээлэл
bolor:myTestProject bolor$ ls -Gla total 32 drwxr-xr-x 5 bolor staff 170 . drwx------+ 6 bolor staff 204 .. -rwxr-xr-x 1 bolor staff 8636 helloworld -rw-r--r-- 1 root staff 222 helloworld.c
git-ыг таниулах
bolor:myTestProject bolor$ git init Initialized empty Git repository in /Users/bolor/Desktop/myTestProject/.git/
git-ыг таниулсан прожект доторх бүх мэдээлэл. сайн ажиглаж харвал нуугдасан .git (хавтас) өрөө үүссэн байна.
bolor:myTestProject bolor$ ls -Gla total 32 drwxr-xr-x 5 bolor staff 170 . drwx------+ 6 bolor staff 204 .. drwxr-xr-x 9 bolor staff 306 .git -rwxr-xr-x 1 bolor staff 8636 helloworld -rw-r--r-- 1 root staff 247 helloworld.c
одоо эхний тэмдэглэл хадгалах боломжтой боллоо.
git add . && git commit -m ‘commit message’
bolor:myTestProject bolor$ git add . bolor:myTestProject bolor$ git commit -m 'эхний хадгалалт my first commit' [master (root-commit) 9d3d7a5] эхний хадгалалт my first commit 2 files changed, 14 insertions(+) create mode 100755 helloworld create mode 100644 helloworld.c
программын эх кодын төлөвыг git status шалгана
bolor:myTestProject bolor$ git status On branch master nothing to commit, working directory clean
үүсгэсэн санамжыг git log комманд-р харна
bolor:myTestProject bolor$ git log commit 9d3d7a5396886bb96f752024636feeda4e47b1bd Author: Bolor Date: xx:xx:xxxx эхний хадгалалт my first commit
үүсгэсэн прожектын явцыг бэлэн гэж үзвэл repositorie хэлбэрээр хадгалж болно.
bolor:myTestProject bolor$ mkdir -p ../share/myrepo1.git bolor:myTestProject bolor$ git init --bare ../share/myrepo1.git/ Initialized empty Git repository in /Users/bolor/Desktop/share/myrepo1.git/ bolor:myTestProject bolor$ git remote add myRepo_Beta ../share/myrepo1.git/ bolor:myTestProject bolor$ git push myRepo_Beta master Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 1.37 KiB | 0 bytes/s, done. Total 4 (delta 0), reused 0 (delta 0) To ../share/myrepo1.git/ * [new branch] master -> master
эх код оо ssh сервэрээр raspberry pi-д тавьж туршив.
bolor:~ bolor$ ssh pi@192.168.1.3 pi@raspberrypi ~ $ mkdir -p share/pro1.git pi@raspberrypi ~ $ git init --bare share/pro1.git/ Initialized empty Git repository in /home/pi/share/pro1.git/
myTestProject bolor$ git remote add share_pi pi@192.168.1.3:/home/pi/share/pro1.git/ myTestProject bolor$ git push share_pi master Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 1.37 KiB | 0 bytes/s, done. Total 4 (delta 0), reused 0 (delta 0) To pi@192.168.1.3:/home/pi/share/pro1.git/ * [new branch] master -> master
raspberry pi-д тавьсан кодоо git clone pi@192.168.1.3:/home/pi/share/pro1.git/ комманд-р татна
bolor:Desktop bolor$ git clone pi@192.168.1.3:/home/pi/share/pro1.git/ Cloning into 'pro1'... remote: Counting objects: 4, done. remote: Compressing objects: 100% (4/4), done. Receiving objects: 100% (4/4), 1.37 KiB | 0 bytes/s, done. remote: Total 4 (delta 0), reused 0 (delta 0) Checking connectivity... done.
өмнө үүсгэсэн repository-ыг git clone ~/Desktop/share/myrepo1.git/ комманд-р татна
bolor:Desktop bolor$ git clone ~/Desktop/share/myrepo1.git/ Cloning into 'myrepo1'... done.
бичсэн кодонд жижиг өөрчилөлт оруулья
өөрчилсөн кодоо одоо коммит хийж хадгалья
git add . && git commit -m ‘second commit’
bolor:myTestProject bolor$ git add . && git commit -m 'second commit' [master c46e35f] second commit 1 file changed, 1 insertion(+), 1 deletion(-)
хадгалсан эх кодны тэмдэглэлийг git log-p харна
bolor:myTestProject bolor$ git log commit c46e35f6095a64eceaaed89e4621dabea33cc600 Author: Bolor Date: second commit commit 9d3d7a5396886bb96f752024636feeda4e47b1bd Author: Date: эхний хадгалалт my first commit
юу өөрчилснөө git difftool commit2 commit1 шалгаж болно
bolor:myTestProject bolor$ git difftool c46e35f6095a64eceaaed89e4621dabea33cc600 9d3d7a5396886bb96f752024636feeda4e47b1bd Viewing (1/1): 'helloworld.c' Launch 'opendiff' [Y/n]: yw
энэ удаа git-д ашиглагдах чухал хэдэн коммандыг туршиж харууллаа.