700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux git指令不存在 一些常用的Git命令

linux git指令不存在 一些常用的Git命令

时间:2023-09-06 11:16:13

相关推荐

linux git指令不存在 一些常用的Git命令

整理了非常由于的Git一些常用命令,Git是目前世界上最先进的分布式版本控制系统。由于它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

1、init,创建一个git仓库

[root@linuxidc git]# cd /usr/local/

[root@linuxidc local]# mkdir github

[root@linuxidc local]# cd github

[root@linuxidc git]# git init

Initialized empty Git repository in /usr/local/github/.git/

[root@linuxidc git]# ls -a

. .. .git

2、status,检查状态

[root@linuxidc git]# touch code1.py

[root@linuxidc git]# git status

# On branch master

# Untracked files:

# (use "git add ..." to include in what will be committed)

#

# code1.py

nothing added to commit but untracked files present (use "git add" to track)

3、add,文件添加到索引,也就是接受版本控制

[root@linuxidc git]# git add code1.py

[root@linuxidc git]# git status

# On branch master

# Changes to be committed:

# (use "git reset HEAD ..." to unstage)

#

# new file: code1.py

#

4、commit,提交

[root@linuxidc git]# git commit -m "New add code1.py" #第一次会提示我们输入信息,名字与邮件

[master 7894d32] New add code1.py

Committer: root

Your name and email address were configured automatically based

on your username and hostname. Please check that they are accurate.

You can suppress this message by setting them explicitly:

git config --global user.name "Your Name"

git config --global user.email you@

If the identity used for this commit is wrong, you can fix it with:

git commit --amend --author='Your Name '

0 files changed, 0 insertions(+), 0 deletions(-)

create mode 100644 code1.py

[root@linuxidc git]# git config --global user.name sunshine #名字

[root@linuxidc git]# git config --global user.email sunshine@ #邮件地址

[root@linuxidc git]# git config --global color.ui #auto显示颜色

5、branc 创建、查看、删除分支

[root@linuxidc git]# git branch

* master

[root@linuxidc git]# git branch dev

[root@linuxidc git]# git branch

dev

* master

[root@linuxidc git]# git branch -d dev

Deleted branch dev (was 7894d32).

[root@linuxidc git]# git branch

* master

#删除分支会有另外一种诡异的现象发生

[root@linuxidc git]# git checkout -b dev1 #创建并切换dev1分支

Switched to a new branch 'dev1'

[root@linuxidc git]# cat code.py

[root@linuxidc git]# echo "print 'Sunshine Good~'" > code.py #输出内容至code.py

[root@linuxidc git]# cat code.py

print 'Sunshine Good~'

[root@linuxidc git]# git add code.py

[root@linuxidc git]# git commit -m "New add rom 'Sunshine Good~'"

[dev1 865c84e] New add rom 'Sunshine Good~'

1 files changed, 1 insertions(+), 0 deletions(-)

[root@linuxidc git]# git checkout master#切换至master

Switched to branch 'master'

[root@linuxidc git]# cat code.py #查看mastercode.py,没有内容

[root@linuxidc git]# git branch -d dev1#删除分支dev1报错,俩中方法,第一dev1确实不是我需要的,那么小d换成大D即可,第二个就下面步骤

error: The branch 'dev1' is not fully merged.

If you are sure you want to delete it, run 'git branch -D dev1'.

[root@linuxidc git]# git merge dev1 #合并分支dev1至master

Updating bf266f5..865c84e

Fast-forward

code.py | 1 +

1 files changed, 1 insertions(+), 0 deletions(-)

[root@linuxidc git]# cat code.py

print 'Sunshine Good~'

[root@linuxidc git]# git branch -d dev1#使用小d删除分支dev1,删除成功

Deleted branch dev1 (was 865c84e).

[root@linuxidc git]#

6、checkout 切换 创建分支

[root@linuxidc git]# git checkout -b dev

Switched to a new branch 'dev'

[root@linuxidc git]# git branch

* dev

master

[root@linuxidc git]# git checkout master

Switched to branch 'master'

[root@linuxidc git]# git branch

dev

* master

7、clone 克隆一个repository 信息在本地目录,哪自己之前做好的gitolite

[root@Redis_master ~]# git clone git@127.0.0.1:dev

Initialized empty Git repository in /root/dev/.git/

remote: Counting objects: 9, done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 9 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (9/9), done.

[root@redis_master ~]# ls

anaconda-ks.cfg appendonly.aof dev id_rsa.pub install.log install.log.syslog

[root@redis_master ~]# cd dev/

[root@redis_master dev]# ls

test.txt

8、diff 对比文件

[root@linuxidc git]# ls

code1.py code.py

[root@linuxidc git]# git status

# On branch master

nothing to commit (working directory clean)

[root@linuxidc git]# vim code1.py

[root@linuxidc git]# git diff#这里是对比暂存区与工作区对比

diff --git a/code1.py b/code1.py

index e69de29..66708be 100644

--- a/code1.py

+++ b/code1.py

@@ -0,0 +1 @@

+print 'Sunshine Good!'

[root@linuxidc git]# git diff --staged#这里是暂存区对比staged也就是我们commit的staged区

[root@linuxidc git]# git add code1.py#添加到暂存区

[root@linuxidc git]# git diff#工作区对比暂存区

[root@linuxidc git]# git diff --staged#暂存区对比commit的staged

diff --git a/code1.py b/code1.py

index e69de29..66708be 100644

--- a/code1.py

+++ b/code1.py

@@ -0,0 +1 @@

+print 'Sunshine Good!'

[root@linuxidc git]# git commit -m "code1.py New add row Sunshine Good" #提交

[master bf266f5] code1.py New add row Sunshine Good

1 files changed, 1 insertions(+), 0 deletions(-)

[root@linuxidc git]# git diff --staged #对比暂存区以staged区

[root@linuxidc git]# git diff #对比工作区对比暂存区

9、log 就是日志咯,不过这里显示的可能比较诡异

[root@linuxidc git]# git log#详细显示

commit bf266f5673089439efdd632a38b7220390af5cc7

Author: sunshine

Date: Wed Oct 5 23:34:03 +0800

code1.py New add row Sunshine Good

commit 7894d320ac92997fdb4d0c74487d87def3ebf756

Author: root

Date: Wed Oct 5 23:20:29 +0800

New add code1.py

commit b4213472064fbc292eff843b6a67549344197495

Author: root

Date: Wed Oct 5 21:45:23 +0800

New add code.py

[root@linuxidc git]# git log --oneline #简要显示

bf266f5 code1.py New add row Sunshine Good

7894d32 New add code1.py

b421347 New add code.py

[root@linuxidc git]# git log --color --graph #显示版本分支示意图

* commit bf266f5673089439efdd632a38b7220390af5cc7

| Author: sunshine

| Date: Wed Oct 5 23:34:03 +0800

|

| code1.py New add row Sunshine Good

|

* commit 7894d320ac92997fdb4d0c74487d87def3ebf756

| Author: root

| Date: Wed Oct 5 23:20:29 +0800

|

| New add code1.py

|

* commit b4213472064fbc292eff843b6a67549344197495

Author: root

Date: Wed Oct 5 21:45:23 +0800

New add code.py

10、merge 合并分支

[root@linuxidc git]# ls

code1.py code.py

[root@linuxidc git]# git checkout -b dev #创建并切换至分支dev

Switched to a new branch 'dev'

[root@linuxidc git]# git branch #查看当前位置所在分支

* dev

master

[root@linuxidc git]# vim code.py

[root@linuxidc git]# cat code.py

print 'Sunsine !'

[root@linuxidc git]# git checkout master #切换回master

M code.py

Switched to branch 'master'

[root@linuxidc git]# git merge dev #合并分支dev

Already up-to-date.

[root@linuxidc git]# cat code.py

print 'Sunsine !'

[root@linuxidc git]# git branch -d dev#删除分支

Deleted branch dev (was bf266f5)

11、mv 重命名

[root@linuxidc git]# ls

code1.py code.py

[root@linuxidc git]# git mv code1.py code.txt #重命名code1.py-->code.txt

[root@linuxidc git]# ls

code.py code.txt

[root@linuxidc git]# git status #查看状态,显示 # renamed: code1.py -> code.txt

# On branch master

# Changes to be committed:

# (use "git reset HEAD ..." to unstage)

#

# renamed: code1.py -> code.txt

#

[root@linuxidc git]# git add code.txt

[root@linuxidc git]# git commit -m " Modify file name code1.py-->code.txt"

[master 924041d] Modify file name code1.py-->code.txt

1 files changed, 0 insertions(+), 0 deletions(-)

rename code1.py => code.txt (100%)

12、rm 删除

[root@linuxidc git]# ll

total 8

-rw-r--r-- 1 root root 23 Oct 5 23:53 code.py

-rw-r--r-- 1 root root 23 Oct 5 23:32 code.txt

[root@linuxidc git]# git rm code.txt#删除code.txt

rm 'code.txt'

[root@linuxidc git]# ll

total 4

-rw-r--r-- 1 root root 23 Oct 5 23:53 code.py

[root@linuxidc git]# git commit -am " Delete file code.txt"

[master 82ec99e] Delete file code.txt

1 files changed, 0 insertions(+), 1 deletions(-)

delete mode 100644 code.txt

13、show等价于rev-parse,只不过一个是简要一个是明细

[root@linuxidc git]# git show HEAD~#看hash值

commit 924041d5e2924e945f67816775869d4ceb9694dd

Author: sunshine

Date: Wed Oct 5 23:57:25 +0800

Modify file name code1.py-->code.txt

diff --git a/code.txt b/code.txt

new file mode 100644

index 0000000..66708be

--- /dev/null

+++ b/code.txt

@@ -0,0 +1 @@

+print 'Sunshine Good!'

diff --git a/code1.py b/code1.py

deleted file mode 100644

index 66708be..0000000

--- a/code1.py

+++ /dev/null

@@ -1 +0,0 @@

-print 'Sunshine Good!'

[root@linuxidc git]# git rev-parse HEAD~ #仔细看hash值是一样的

924041d5e2924e945f67816775869d4ceb9694dd

14、cat-file 查看tree与parent

[root@linuxidc git]# git cat-file -t HEAD~#-t 显示commit

commit

[root@linuxidc git]# git cat-file -p HEAD~#-p 显示tree与parent

tree ea16f4c3781c4dc1f5e142eba114b0d5a1cefeaa

parent 865c84e5f13fb239f83e3e27bcf0f3a28990034e

author sunshine 1475683045 +0800

committer sunshine 1475683045 +0800

Modify file name code1.py-->code.txt

15、reset 这个就比较复杂啦

[root@linuxidc git]# ll

total 4

-rw-r--r-- 1 root root 23 Oct 6 00:17 code.py

[root@linuxidc git]# git log --oneline#查看历史commit版本hash值82ec99e

82ec99e Delete file code.txt

924041d Modify file name code1.py-->code.txt

865c84e New add rom 'Sunshine Good~'

bf266f5 code1.py New add row Sunshine Good

7894d32 New add code1.py

b421347 New add code.py

[root@linuxidc git]# ll

total 4

-rw-r--r-- 1 root root 23 Oct 6 00:17 code.py

[root@linuxidc git]# git rm code.py #删除文件code.py

rm 'code.py'

[root@linuxidc git]# git commit -am "Delete file code.py" #commit -am等价于执行 #git add filename # git commit -m "Delete fie code.py",提示删除成功

[master 3271a1d] Delete file code.py

1 files changed, 0 insertions(+), 1 deletions(-)

delete mode 100644 code.py

[root@linuxidc git]# ll #查看不存在

total 0

[root@linuxidc git]# git status #也没报错

# On branch master

nothing to commit (working directory clean)

[root@linuxidc git]# git log --oneline#查看commit版本hash值

3271a1d Delete file code.py

82ec99e Delete file code.txt

924041d Modify file name code1.py-->code.txt

865c84e New add rom 'Sunshine Good~'

bf266f5 code1.py New add row Sunshine Good

7894d32 New add code1.py

b421347 New add code.py

[root@linuxidc git]# git reset --hard 82ec99e #回滚到上个版本

HEAD is now at 82ec99e Delete file code.txt

[root@linuxidc git]# ll #OK文件回来了

total 4

-rw-r--r-- 1 root root 23 Oct 6 00:18 code.py

[root@linuxidc git]# git log --oneline#回滚成功

82ec99e Delete file code.txt

924041d Modify file name code1.py-->code.txt

865c84e New add rom 'Sunshine Good~'

bf266f5 code1.py New add row Sunshine Good

7894d32 New add code1.py

b421347 New add code.py

16、tag 标签,由于commit都是以hash记录,所以tag是为快速定义而准备的

[root@linuxidc git]# git log --oneline#查看commit版本的hash

2989e89 New add rom Sunshine

bf266f5 code1.py New add row Sunshine Good

7894d32 New add code1.py

b421347 New add code.py

[root@linuxidc git]# git tag v0.1.2 2989e89 #为hash值2989e89打上标签v0.1.2

[root@linuxidc git]# git tag v0.1.3 bf266f5 #为hash值bf266f5打上标签v0.1.3

[root@linuxidc git]# git tag

v0.1.1

v0.1.2

v0.1.3

[root@linuxidc git]# git tag v0.1.4 #修改代码或者增加功能都可以直接给上tag

[root@linuxidc git]# git show 2989e89#使用hash查找

commit 2989e8927da83be9087933c17b074adeb2e91e2c

Author: sunshine

Date: Wed Oct 5 23:49:07 +0800

New add rom Sunshine

diff --git a/code.py b/code.py

index e69de29..3a2a051 100644

--- a/code.py

+++ b/code.py

@@ -0,0 +1 @@

+print 'Sunsine !'

[root@linuxidc git]# git show v0.1.2#使用标签查找

commit 2989e8927da83be9087933c17b074adeb2e91e2c

Author: sunshine

Date: Wed Oct 5 23:49:07 +0800

New add rom Sunshine

diff --git a/code.py b/code.py

index e69de29..3a2a051 100644

--- a/code.py

+++ b/code.py

@@ -0,0 +1 @@

+print 'Sunsine !'

[root@linuxidc git]# git tag -d v0.1.1 #删除标签

Deleted tag 'v0.1.1' (was 2989e89)

[root@linuxidc git]# git tag

v0.1.2

v0.1.3

17、pull 获取,这个用到我们之前搭建的gitolite

[root@redis_master dev]# git pull origin master#没发现有人push,所以拉不到信息

From 127.0.0.1:dev

* branchmaster -> FETCH_HEAD

Already up-to-date.

[root@redis_master dev]# git push -f #为了测试这边使用-f强制覆盖更新

Counting objects: 32, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (19/19), done.

Writing objects: 100% (32/32), 2.94 KiB, done.

Total 32 (delta 0), reused 0 (delta 0)

To git@127.0.0.1:dev

+ 4197bf0...addfd8f master -> master (forced update)

[root@redis_master dev]# git pull #再试一下git pull

remote: Counting objects: 24, done.

remote: Compressing objects: 100% (16/16), done.

remote: Total 23 (delta 0), reused 0 (delta 0)

Unpacking objects: 100% (23/23), done.

From 127.0.0.1:dev

+ 4197bf0...addfd8f master -> origin/master (forced update)

Merge made by recursive.

855.py | 4 ++++

class.php | 1 +

2 files changed, 5 insertions(+), 0 deletions(-)

create mode 100644 855.py

create mode 100644 class.php

[root@redis_master dev]# ll#拉取到代码了

total 8

-rw-r--r--. 1 root root 45 Oct 6 01:03 855.py

-rw-r--r--. 1 root root 4 Oct 6 01:03 class.php

18、push 推送,这个用到我们之前搭建的gitolite

12345678910111213141516 [root@redis_master dev]# git status #查看状态

# On branch master

nothing to commit (working directory clean)

[root@redis_master dev]# cat test.txt

this is test file

555

[root@redis_master dev]# echo 44 >> test.txt #修改内容

[root@redis_master dev]# git commit -am "New add string 44" #commit并说明

[master 4197bf0] New add string 44

1 files changed, 1 insertions(+), 0 deletions(-)

[root@redis_master dev]# git push#推送至我们的远程代码托管

Counting objects: 5, done.

Writing objects: 100% (3/3), 262 bytes, done.

Total 3 (delta 0), reused 0 (delta 0)

To git@127.0.0.1:dev

8a54bbe..4197bf0 master -> master

CentOS 6.7下Gitolite 服务搭建及TortoiseGit配置连接 见 /Linux/-07/145766.htm。其实这里只是简简单单的介绍了下命令的正常场景所遇见的问题!~更深层次的下次介绍呗^-^,

更多 Git 教程系列文章:

Git 的详细介绍:请点这里

Git 的下载地址:请点这里

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。