[root@m01 /]# rpm -aq git
git-1.8.3.1-23.el7_8.x86_64
[root@m01 /]# git config --global user.name 'zgk'
[root@m01 /]# git config --global user.email 'zgk@zgk.com'
[root@m01 /]# git config --global color.ui true
[root@m01 /]#
[root@m01 /]# cat ~/.gitconfig
[user]
name = zgk
email = zgk@zgk.com
[color]
ui = true
[root@m01 /]#
[root@m01 /]# cd ~
[root@m01 ~]# ll
总用量 4
-rw-------. 1 root root 1659 6月 27 06:53 anaconda-ks.cfg
[root@m01 ~]# mkdir data
[root@m01 ~]# cd data
[root@m01 ~/data]# git init #初始化仓库,把一个目录初始化为版本仓库,可以是空目录或者是带内容的目录
初始化空的 Git 版本库于 /root/data/.git/
[root@m01 ~/data]# git status #查看当前仓库的状态
# 位于分支 master
#
# 初始提交
#
无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)
[root@m01 ~/data]# tree .git
.git
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
[root@m01 ~/data]# touch a b c
[root@m01 ~/data]# git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# a
# b
# c
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
[root@m01 ~/data]# git add a #放暂存区
[root@m01 ~/data]# tree .git
.git
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── index #添加文件a后,此时产生index文件
├── info
│ └── exclude
├── objects
│ ├── e6
│ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
10 directories, 15 files
[root@m01 ~/data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: a
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# b
# c
[root@m01 ~/data]# git add . # . 或者 *是添加所有文件
[root@m01 ~/data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: a
# 新文件: b
# 新文件: c
#
[root@m01 ~/data]#
[root@m01 ~/data]# git rm --cached c #从暂存区撤回到工作区
rm 'c'
[root@m01 ~/data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: a
# 新文件: b
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# c
[root@m01 ~/data]#
[root@m01 ~/data]# rm -rf c
[root@m01 ~/data]# ll
总用量 0
-rw-r--r-- 1 root root 0 8月 16 13:46 a
-rw-r--r-- 1 root root 0 8月 16 13:46 b
[root@m01 ~/data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: a
# 新文件: b
#
[root@m01 ~/data]#
[root@m01 ~/data]# git rm -f b #同时删除工作目录和暂存区的内容
rm 'b'
[root@m01 ~/data]# ll
总用量 0
-rw-r--r-- 1 root root 0 8月 16 13:46 a
[root@m01 ~/data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: a
#
[root@m01 ~/data]#
[root@m01 ~/data]# git commit -m "add newfile a" #从缓存区提交到本地仓库
[master(根提交) 493a850] add newfile a #493a850 hash值,相当于做了快照
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
[root@m01 ~/data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@m01 ~/data]#
[root@m01 ~/data]# mv a a.txt #不会认为是改名
[root@m01 ~/data]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add/rm <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 删除: a
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# a.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@m01 ~/data]#
[root@m01 ~/data]# git rm --cached a
rm 'a'
[root@m01 ~/data]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 删除: a
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# a.txt
[root@m01 ~/data]#
[root@m01 ~/data]# git add a.txt
[root@m01 ~/data]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 重命名: a -> a.txt
#
[root@m01 ~/data]#
[root@m01 ~/data]# git commit -m "modified a a.txt"
[master ec8475e] modified a a.txt
1 file changed, 0 insertions(+), 0 deletions(-)
rename a => a.txt (100%)
[root@m01 ~/data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@m01 ~/data]#
[root@m01 ~/data]# git mv a.txt a
[root@m01 ~/data]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 重命名: a.txt -> a
#
[root@m01 ~/data]#
[root@m01 ~/data]# git commit -m "modified a.txt a"
[master cf8b62e] modified a.txt a
1 file changed, 0 insertions(+), 0 deletions(-)
rename a.txt => a (100%)
[root@m01 ~/data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@m01 ~/data]#
[root@m01 ~/data]# git diff
[root@m01 ~/data]#
[root@m01 ~/data]# echo index >a
[root@m01 ~/data]# git diff
diff --git a/a b/a
index e69de29..9015a7a 100644
--- a/a
+++ b/a
@@ -0,0 +1 @@
+index
[root@m01 ~/data]#
[root@m01 ~/data]# git diff --cached ##暂存区和本地仓库相同
[root@m01 ~/data]#
[root@m01 ~/data]# git log
commit 42ae82665c39d98c43a94c2516c52aba4ad5300b
Author: zgk <zgk@zgk.com>
Date: Sun Aug 16 18:34:34 2020 +0800
add index
commit cf8b62e2ab5f6ec8d3f1e33fa5367ac4ab40ec7d
Author: zgk <zgk@zgk.com>
Date: Sun Aug 16 14:31:12 2020 +0800
modified a.txt a
commit ec8475e2a305e043dc8a2921849e100b0fb0071d
Author: zgk <zgk@zgk.com>
Date: Sun Aug 16 14:28:33 2020 +0800
modified a a.txt
commit 493a850ba3b9fed3a80afb8fb6a75431dd8ee921
Author: zgk <zgk@zgk.com>
Date: Sun Aug 16 14:20:23 2020 +0800
add newfile a
[root@m01 ~/data]# git log --oneline ##一行简单显示
42ae826 add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git log --oneline --decorate ##当前指针
42ae826 (HEAD, master) add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git log -p ##显示具体内容变化
commit 42ae82665c39d98c43a94c2516c52aba4ad5300b
Author: zgk <zgk@zgk.com>
Date: Sun Aug 16 18:34:34 2020 +0800
add index
diff --git a/a b/a
index e69de29..9015a7a 100644
--- a/a
+++ b/a
@@ -0,0 +1 @@
+index
[root@m01 ~/data]# git log -1 ##只显示一条
commit 42ae82665c39d98c43a94c2516c52aba4ad5300b
Author: zgk <zgk@zgk.com>
Date: Sun Aug 16 18:34:34 2020 +0800
add index
[root@m01 ~/data]# git reset --hard 493a850 ##回滚
HEAD 现在位于 493a850 add newfile a
[root@m01 ~/data]# git reflog
42ae826 HEAD@{0}: reset: moving to 42ae826
cf8b62e HEAD@{1}: reset: moving to cf8b62e
493a850 HEAD@{2}: reset: moving to 493a850
42ae826 HEAD@{3}: commit: add index
cf8b62e HEAD@{4}: commit: modified a.txt a
ec8475e HEAD@{5}: commit: modified a a.txt
493a850 HEAD@{6}: commit (initial): add newfile a
[root@m01 ~/data]# git branch testing ##建立分支
[root@m01 ~/data]# git branch ##查看分支,*号位置
* master
testing
[root@m01 ~/data]# touch aaa bbb ccc
[root@m01 ~/data]# git add aaa
[root@m01 ~/data]# git commit -m "add aaa"
[master ff0d064] add aaa
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 aaa
[root@m01 ~/data]# git add bbb
[root@m01 ~/data]# git commit -m "add bbb"
[master 9717e30] add bbb
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bbb
[root@m01 ~/data]# git add ccc
[root@m01 ~/data]# git commit -m "add ccc"
[master 3b2ed6e] add ccc
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 ccc
[root@m01 ~/data]# git log --oneline
3b2ed6e add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git log --oneline --decorate
3b2ed6e (HEAD, master) add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 (testing) add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git checkout testing
切换到分支 'testing'
[root@m01 ~/data]# git log --oneline --decorate
42ae826 (HEAD, testing) add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git branch
master
* testing
[root@m01 ~/data]# ll
总用量 4
-rw-r--r-- 1 root root 6 8月 16 18:49 a
[root@m01 ~/data]# git checkout master
切换到分支 'master'
[root@m01 ~/data]# git branch -d testing
已删除分支 testing(曾为 42ae826)。
[root@m01 ~/data]# git branch
* master
[root@m01 ~/data]# git checkout -b testing
切换到一个新分支 'testing'
[root@m01 ~/data]# git branch
master
* testing
[root@m01 ~/data]# ls
a aaa bbb ccc
[root@m01 ~/data]# git log --oneline --decorate
3b2ed6e (HEAD, testing, master) add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# touch test-ddd
[root@m01 ~/data]# git add .
[root@m01 ~/data]# git commit -m "add newfile test-ddd"
[testing d821c08] add newfile test-ddd
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test-ddd
[root@m01 ~/data]# git branch
master
* testing
[root@m01 ~/data]# git log --oneline --decorate
d821c08 (HEAD, testing) add newfile test-ddd
3b2ed6e (master) add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# touch master-eee
[root@m01 ~/data]# git add .
[root@m01 ~/data]# git commit -m "add newfile master-eee"
[master 4198ea0] add newfile master-eee
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 master-eee
[root@m01 ~/data]# git log --oneline --decorate
4198ea0 (HEAD, master) add newfile master-eee
3b2ed6e add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# ll
总用量 4
-rw-r--r-- 1 root root 6 8月 16 18:49 a
-rw-r--r-- 1 root root 0 8月 16 19:39 aaa
-rw-r--r-- 1 root root 0 8月 16 19:39 bbb
-rw-r--r-- 1 root root 0 8月 16 19:39 ccc
-rw-r--r-- 1 root root 0 8月 16 20:17 master-eee
[root@m01 ~/data]# git merge testing
Merge made by the 'recursive' strategy.
test-ddd | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test-ddd
[root@m01 ~/data]# ll
总用量 4
-rw-r--r-- 1 root root 6 8月 16 18:49 a
-rw-r--r-- 1 root root 0 8月 16 19:39 aaa
-rw-r--r-- 1 root root 0 8月 16 19:39 bbb
-rw-r--r-- 1 root root 0 8月 16 19:39 ccc
-rw-r--r-- 1 root root 0 8月 16 20:17 master-eee
-rw-r--r-- 1 root root 0 8月 16 20:19 test-ddd ##合并到主干
[root@m01 ~/data]# git checkout master
切换到分支 'master'
[root@m01 ~/data]# git branch -d testing
已删除分支 testing(曾为 d821c08)。
[root@m01 ~/data]# git log --oneline --decorate
bb5116d (HEAD, master) Merge branch 'testing' merge testing
4198ea0 add newfile master-eee
d821c08 add newfile test-ddd
3b2ed6e add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# cat aaa
<<<<<<< HEAD
master
=======
test
>>>>>>> test
[root@m01 ~/data]# git status
# 位于分支 master
# 您有尚未合并的路径。
# (解决冲突并运行 "git commit")
#
# 未合并的路径:
# (使用 "git add <file>..." 标记解决方案)
#
# 双方添加: aaa
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@m01 ~/data]# vim aaa
[root@m01 ~/data]# git commit -am "merge"
[master d97c1b6] merge
[root@m01 ~/data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@m01 ~/data]# cat aaa
master
test
[root@m01 ~/data]# git log --oneline
d97c1b6 merge
2e6a9c3 master aaa
610f94f aaa
c1e53e3 touch aaa
8903f1b shanchu a
3ba610e 222 aaa
bb5116d Merge branch 'testing' merge testing
4198ea0 add newfile master-eee
d821c08 add newfile test-ddd
3b2ed6e add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git tag -a v1.0 42ae826 -m "tag 1.0"
[root@m01 ~/data]# git tag
v1.0
[root@m01 ~/data]# git show v1.0
tag v1.0
Tagger: zgk <zgk@zgk.com>
Date: Mon Aug 17 09:04:44 2020 +0800
tag 1.0
commit 42ae82665c39d98c43a94c2516c52aba4ad5300b
Author: zgk <zgk@zgk.com>
Date: Sun Aug 16 18:34:34 2020 +0800
add index
diff --git a/a b/a
index e69de29..9015a7a 100644
--- a/a
+++ b/a
@@ -0,0 +1 @@
+index
[root@m01 ~/data]# git reset --hard v1.0
HEAD 现在位于 42ae826 add index
[root@m01 ~/data]# git reflog
42ae826 HEAD@{0}: reset: moving to v1.0
d97c1b6 HEAD@{1}: commit (merge): merge
2e6a9c3 HEAD@{2}: commit: master aaa
8903f1b HEAD@{3}: checkout: moving from test to master
610f94f HEAD@{4}: commit: aaa
c1e53e3 HEAD@{5}: commit: touch aaa
8903f1b HEAD@{6}: checkout: moving from master to test
8903f1b HEAD@{7}: commit: shanchu a
3ba610e HEAD@{8}: checkout: moving from test to master
3ba610e HEAD@{9}: checkout: moving from master to test
3ba610e HEAD@{10}: merge test: Fast-forward
bb5116d HEAD@{11}: checkout: moving from test to master
3ba610e HEAD@{12}: commit: 222 aaa
bb5116d HEAD@{13}: checkout: moving from master to test
bb5116d HEAD@{14}: checkout: moving from testing to master
bb5116d HEAD@{15}: checkout: moving from master to testing
bb5116d HEAD@{16}: checkout: moving from master to master
bb5116d HEAD@{17}: checkout: moving from testing to master
d821c08 HEAD@{18}: checkout: moving from master to testing
bb5116d HEAD@{19}: merge testing: Merge made by the 'recursive' strategy.
4198ea0 HEAD@{20}: commit: add newfile master-eee
3b2ed6e HEAD@{21}: checkout: moving from testing to master
d821c08 HEAD@{22}: commit: add newfile test-ddd
3b2ed6e HEAD@{23}: checkout: moving from master to testing
3b2ed6e HEAD@{24}: checkout: moving from testing to master
42ae826 HEAD@{25}: checkout: moving from master to testing
3b2ed6e HEAD@{26}: commit: add ccc
9717e30 HEAD@{27}: commit: add bbb
ff0d064 HEAD@{28}: commit: add aaa
42ae826 HEAD@{29}: reset: moving to 42ae826
cf8b62e HEAD@{30}: reset: moving to cf8b62e
493a850 HEAD@{31}: reset: moving to 493a850
42ae826 HEAD@{32}: commit: add index
cf8b62e HEAD@{33}: commit: modified a.txt a
ec8475e HEAD@{34}: commit: modified a a.txt
493a850 HEAD@{35}: commit (initial): add newfile a
[root@m01 ~/data]# git reset --hard bb5116d
HEAD 现在位于 bb5116d Merge branch 'testing'
[root@m01 ~/data]# git tag -a "v2.0" -m "XXX"
[root@m01 ~/data]# git tag
v1.0
v2.0
[root@m01 ~/data]# git log --oneline --decorate
bb5116d (HEAD, tag: v2.0, master) Merge branch 'testing' merge testing
4198ea0 add newfile master-eee
d821c08 add newfile test-ddd
3b2ed6e add ccc
9717e30 add bbb
ff0d064 add aaa
42ae826 (tag: v1.0) add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git reset --hard v1.0
HEAD 现在位于 42ae826 add index
[root@m01 ~/data]# git log --oneline --decorate
42ae826 (HEAD, tag: v1.0, master) add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git tag -d v1.0
已删除 tag 'v1.0'(曾为 c649ab8)
[root@m01 ~/data]# git log --oneline --decorate
42ae826 (HEAD, master) add index
cf8b62e modified a.txt a
ec8475e modified a a.txt
493a850 add newfile a
[root@m01 ~/data]# git remote add origin git@github.com:zgk-zgk/git_xiaobu.git
[root@m01 ~/data]# git remote
origin
[root@m01 ~/data]# git push -u origin master
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
Counting objects: 9, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (9/9), 662 bytes | 0 bytes/s, done.
Total 9 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To git@github.com:zgk-zgk/git_xiaobu.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
[root@m01 /tmp]# git clone git@github.com:zgk-zgk/git_data.git
正克隆到 'git_data'...
remote: Enumerating objects: 27, done.
remote: Counting objects: 100% (27/27), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 27 (delta 7), reused 27 (delta 7), pack-reused 0
接收对象中: 100% (27/27), done.
处理 delta 中: 100% (7/7), done.
1000 rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
1001 gitlab-ctl reconfigure
1002 gitlab-ctl status
1007 cat .ssh/id_rsa.pub
1008 cd data
1009 git remote
1010 git remote remove origin
1011 git remote
1012 git remote add origin git@10.0.0.61:test/git_data.git
1014 git push -u origin master
2020-09-03-git命令操作笔记
?著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...