là một hệ thống quản lý mã nguồn miễn phí và mở, được xây dựng để có thể quản lý dự án từ nhỏ đến rất lớn một cách nhanh chóng và hiệu quả.
Copy code ra chỗ khác để sửa?
Mac: http://sourceforge.net/projects/git-osx-installer/
window: https://git-for-windows.github.io/
$ git config --global user.name "nghiatv"
$ git config --global user.email nghiait0111@gmail.com
$ git config --global core.editor emacs
$ git config --list
Kiểm tra cấu hình
$ git config user.name
Hoặc
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
$ git help config
Chi tiết
Tạo ra 1 file .git chứa các tệp tin cần thiết cho 1 kho chứa git
"Clone" từ một respository có sẵn.
$ git add *.c
$ git add README
$ git commit -m 'lần đầu làm chuyện ấy'
$ git clone [url]
or
$ git clone [url] ten-thu-muc
$ git status
# On branch master
nothing to commit, working directory clean
$ vim README
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# README
nothing added to commit but untracked files present (use "git add" to track)
Nếu ta thêm 1 file thì sao??
$ git add README
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: README
#
Kiểm tra lại xem sao
Tip: Thêm tất cả
$ git add .
$ git add . --all # git add . -A
Quy tắc cho các mẫu có thể sử dụng trong .gitignore như sau:
$ cat .gitignore
/node_modules
/public/storage
/vendor
/.idea
Homestead.json
Homestead.yaml
.env
_ide_helper.php
$ git diff
diff --git a/dontread.md b/dontread.md
index b94ab74..4ef0498 100644
--- a/dontread.md
+++ b/dontread.md
@@ -1 +1,3 @@
please dont read me!
+
+add something below
$ git diff --staged
diff --git a/dontread.md b/dontread.md
new file mode 100644
index 0000000..b94ab74
--- /dev/null
+++ b/dontread.md
@@ -0,0 +1 @@
+please dont read me!
Chưa được commit
Đã được commit
# them commit vao nhe
$ git commit
# them commit kem noi dung
$ git commit -m "noi dung commit"
# them commit kem noi dung va tu dong add nhung file da duoc track
$ git commit -a -m "noi dung commit"
$ git log
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 16:40:33 2008 -0700
removed unnecessary test code
commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 10:31:28 2008 -0700
first commit
$ git log -p -2
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
diff --git a/Rakefile b/Rakefile
index a874b73..8f94139 100644
--- a/Rakefile
+++ b/Rakefile
@@ -5,5 +5,5 @@ require 'rake/gempackagetask'
spec = Gem::Specification.new do |s|
s.name = "simplegit"
- s.version = "0.1.0"
+ s.version = "0.1.1"
s.author = "Scott Chacon"
s.email = "schacon@gee-mail.com
commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 16:40:33 2008 -0700
removed unnecessary test code
$ git log --pretty=format:"%h - %an, %ar : %s"
ca82a6d - Scott Chacon, 11 months ago : changed the version number
085bb3b - Scott Chacon, 11 months ago : removed unnecessary test code
a11bef0 - Scott Chacon, 11 months ago : first commit
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
Có một vài nguyên nhân chúng ta cần add respository
$ git clone git://github.com/schacon/ticgit.git
Initialized empty Git repository in /private/tmp/ticgit/.git/
remote: Counting objects: 595, done.
remote: Compressing objects: 100% (269/269), done.
remote: Total 595 (delta 255), reused 589 (delta 253)
Receiving objects: 100% (595/595), 73.31 KiB | 1 KiB/s, done.
Resolving deltas: 100% (255/255), done.
$ cd ticgit
$ git remote
origin
$ git remote -v
origin https://github.com/nghiatv/laraforum.git (fetch)
origin https://github.com/nghiatv/laraforum.git (push)
$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git
thêm các respository
$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git
thêm các respository
$ git remote show origin
* remote origin
URL: git://github.com/schacon/ticgit.git
Remote branch merged with 'git pull' while on branch master
master
Tracked remote branches
master
ticgit
kiểm tra thông tin respository
$ git remote rename pb paul
$ git remote
origin
paul
đổi tên thông tin respository
$ git remote rm paul
$ git remote
origin
xóa bỏ respository
$ git pull
Already up-to-date.
lấy dữ liệu từ respository
$ git push origin master
Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (15/15), 1.25 KiB | 0 bytes/s, done.
Total 15 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), completed with 1 local objects.
To https://github.com/nghiatv/laraforum.git
28d606a..d6908f3 master -> master
đẩy dữ liệu lên respository
Tải về trực tiếp từ mã nguồn của Git tại https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
$ sudo nano ~/.bash_profile
source ~/git-completion.bash
Sau đó thêm vào file
$ git config --global alias.last 'log -1 HEAD'
$ git last
commit d6908f371ee1043a8df8b08346d17164a80ee259
Author: Nghia Than <nghiait0111@gmail.com>
Date: Sat Oct 22 03:18:55 2016 +0700
adasd
Sau đó sử dụng