Linux-学习笔记-05

一、上堂回顾

安装git:sudo apt-get install git

将一个目录初始化为一个仓库:git init

将改动添加到暂存区:git add file

将暂存区中的改动提交到版本库:git commit -m “xxx”

查看仓库的状态:git status

查看具体修改的内容:git diff file

查看提交日志:git log

回退到上一个版本:git reset --hard HEAD^

​ git reset --hard commit_id

丢弃工作区的修改:git checkout -- file

丢弃暂存区的修改:git reset HEAD file

丢弃版本库的修改:回退版本

删除文件:

​ 删除工作区的文件:rm file

​ 删除版本库中的文件:git rm file

工作区:新建一个目录,充当一个工作区,但是,该目录并不是普通的目录,需要初始化为git相关的目录,每次做代码的修改都是在工作区中进行的

暂存区:需要通过git add将工作区中的修改添加到暂存区,每个文件都需要通过add添加

版本库【仓库】git commit将暂存区中的所有的修改一次性提交到版本库,此时,达到了工作区和版本库之前的同步

git的工作原理:每次追踪的是修改,并非文件

二、git的使用

1.远程仓库

1.1配置

步骤:

a.生成ssh key,在终端使用命令:ssh-keygen -t rsa -C "git注册邮箱地址"

​ 注意:在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,直接打开使用

b.添加ssh key到github

​ 注意:复制公钥的时候不包含邮箱

c.检测ssh key是否添加成功,使用命令: ssh -T [email protected]

演示命令:
yangyang@yangyang-virMachine:~$ ssh-keygen   -t   rsa   -C  "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yangyang/.ssh/id_rsa): 
/home/yangyang/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/yangyang/.ssh/id_rsa.
Your public key has been saved in /home/yangyang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cnvELJKil2f+TG3Kf18ZhqwrqPI9Av0MNWtihHb/2PY [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|    .            |
|   o o + o  . .  |
|  . = * S +  o o |
|   o B B =  . . o|
|  . = O B +.   ..|
|   o =.X O  o  . |
|    oo+oB.+E ..  |
+----[SHA256]-----+
yangyang@yangyang-virMachine:~$ ls -a
.              Downloads      .mysql_history    .sogouinput
..             .gconf         .nano             .ssh
.bash_history  .gitconfig     .pam_environment  .sudo_as_admin_successful
.bash_logout   .gnome         Pictures          .sunpinyin
.bashrc        .gnupg         .pki              Templates
.cache         .ICEauthority  .presage          Videos
.compiz        .java          .profile          .viminfo
.config        .lesshst       Public            .virtualenvs
.dbus          .local         .PyCharm2017.3    .Xauthority
Desktop        .mozilla       PycharmProjects   .xinputrc
.dmrc          Music          .python_history   .xsession-errors
Documents      .mysql         Software          .xsession-errors.old
yangyang@yangyang-virMachine:~$ cd .ssh/
yangyang@yangyang-virMachine:~/.ssh$ ls
id_rsa  id_rsa.pub
yangyang@yangyang-virMachine:~/.ssh$ cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcjFpnNTorBNrlwQx2P2TaV/me/kvIOsuhUaLNwgQaKVF3oZJabfdw/1TSvYnzODs74Zim7a86fEGfZlb1ZlS76D0SNMm+i4M0AalHj0CG2QvgAn6BIE2klZ5R/Ivfh0H26JB11UyKrDkg++1r+GcDSF8o93LdL83O49yLDizGoepKz8pZOI/aTP9DDeRji5tala1C8SrxXLe7VXdcuwDbV6m3aLmn7TtD79i3dT5i3Ilr8/TepVnJdgdG+FJ0zzTSl9+2hlTmQ0ss54xGP9sGtBgUb1/ywT6m0GyWYEegLLUsQ6+FXcmqQ7OglTLPjnuQ0RjBOqlgxh/6NKBFk3nx [email protected]
yangyang@yangyang-virMachine:~/.ssh$  ssh -T [email protected]
The authenticity of host 'github.com (13.250.177.223)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
​
#第一次连接的时候会得到一个警告:连接的时候,需要验证github的服务器上的key
Warning: Permanently added 'github.com,13.250.177.223' (RSA) to the list of known hosts.
  
#连接成功,已将把github的key添加到本机的信任列表中【本地仓库和远程仓库之间建立了一个通路】  
Hi yangyang-git! You've successfully authenticated, but GitHub does not provide shell access.

d.配置git的配置文件

​ git config –global user.name “注册git账户时的用户名” ———》配置用户名​ git config –global user.email “注册git账户时的邮箱” ———》配置邮箱

1.2添加远程仓库

步骤:

a.git remote add origin [email protected]:yangyang-git/python1804.git 建立本地仓库和远程仓库之间的连接

​ 注意:origin是自定义的,也可以是别的名字,一般习惯上使用origin,表示和本地仓库的master分支对应

b.git push -u origin master 将本地仓库中的内容推送到远程仓库

​ 注意:将本地仓库推送到远程仓库,实际上是将当前分支master推送到远程,-u:将本地master和远程的origin进行关联,以后再次进行推送的时候就可以简化命令

演示命令:
yangyang@yangyang-virMachine:~$ cd Desktop/
yangyang@yangyang-virMachine:~/Desktop$ cd python1804/
yangyang@yangyang-virMachine:~/Desktop/python1804$ git remote add origin [email protected]:yangyang-git/python1804.git
yangyang@yangyang-virMachine:~/Desktop/python1804$ git push -u origin master
Warning: Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.
对象计数中: 27, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (15/15), 完成.
写入对象中: 100% (27/27), 2.18 KiB | 319.00 KiB/s, 完成.
Total 27 (delta 0), reused 0 (delta 0)
To github.com:yangyang-git/python1804.git
 * [new branch]      master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
yangyang@yangyang-virMachine:~/Desktop/python1804$ vim text.txt 
yangyang@yangyang-virMachine:~/Desktop/python1804$ git add text.txt 
yangyang@yangyang-virMachine:~/Desktop/python1804$ git commit -m "remote"
[master 3b60a0b] remote
 1 file changed, 1 insertion(+)
yangyang@yangyang-virMachine:~/Desktop/python1804$ git status
位于分支 master
您的分支领先 'origin/master' 共 1 个提交。
  (使用 "git push" 来发布您的本地提交)
​
无文件要提交,干净的工作区
yangyang@yangyang-virMachine:~/Desktop/python1804$ git push origin master
对象计数中: 3, 完成.
写入对象中: 100% (3/3), 279 bytes | 93.00 KiB/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:yangyang-git/python1804.git
   91114f4..3b60a0b  master -> master

总结:

工作流程:工作区修改文件-------》add到暂存区------》commit到本地版本库------》push到远程版本库

1.3从远程仓库克隆

使用命令:git clone [email protected]:github账户名称/远程仓库名称.git

演示命令:
yangyang@yangyang-virMachine:~/Desktop/python1804$ cd ..
yangyang@yangyang-virMachine:~/Desktop$ git clone [email protected]:yangyang-git/XAPython1804.git
正克隆到 'XAPython1804'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
接收对象中: 100% (3/3), 完成.
yangyang@yangyang-virMachine:~/Desktop$ ls
python1804  shell  text.sh  XAPython1804
yangyang@yangyang-virMachine:~/Desktop$ cd XAPython1804/
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ ls
README.md
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ touch check.txt
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ vim check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git add check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git commit -m "fhagf"
[master bfe0e9d] fhagf
 1 file changed, 1 insertion(+)
 create mode 100644 check.txt
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git push origin master
对象计数中: 3, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 276 bytes | 276.00 KiB/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:yangyang-git/XAPython1804.git
   d775f6b..bfe0e9d  master -> master

总结:

a.要克隆一个仓库,首先需要知道该仓库的地址,然后命令git clone进行克隆

b.git支持多种协议,包括https,一般在公司中使用https协议,使用ssh支持的原生git协议速度更快

2.分支管理

在实际的工作中,根本不会再master分支上直接进行开发,一般会创建多个子分支,举例:一个团队有3个人,每个人有自己的一个子分支,进行开发,当开发完成之后,只需要将各自子分支合并到master分支,好处:安全,不影响其他人的工作【避免冲突】

子分支可以创建,删除和切换

2.1创建分支和合并分支和删除

演示命令:
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout -b dev
切换到一个新分支 'dev'
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch
* dev       #带*的表示是当前正在工作的分支
  master
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ vim check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git add check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git commit -m "hfjfh"
[dev 6d9d7a2] hfjfh
 1 file changed, 1 insertion(+)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout master
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ cat check.txt 
hfhhg
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git merge dev     #将子分支dev合并到当前分支master
更新 bfe0e9d..6d9d7a2
Fast-forward
 check.txt | 1 +
 1 file changed, 1 insertion(+)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ cat check.txt 
hfhhg
hello
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch -d dev
已删除分支 dev(曾为 6d9d7a2)。
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch
* master

总结:

a.git鼓励大量使用分支

b.查看当前的分支:git branch

c.创建并切换分支:git chekcout -b name

d.创建分支:git branch name

e.切换分支:git checkout name

f.合并子分支到当前分支:git merge name

g.删除分支:git branch -d name

2.2解决冲突

演示命令:
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout -b feature1
切换到一个新分支 'feature1'
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch
* feature1
  master
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ vim check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git add check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git commit -m "47346"
[feature1 50c0390] 47346
 1 file changed, 1 insertion(+)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout master
切换到分支 'master'
您的分支领先 'origin/master' 共 1 个提交。
  (使用 "git push" 来发布您的本地提交)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch
  feature1
* master
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ vim check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git add check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git commit -m "fhjahfg"
[master d29ee28] fhjahfg
 1 file changed, 1 insertion(+)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git merge feature1
自动合并 check.txt
冲突(内容):合并冲突于 check.txt
自动合并失败,修正冲突然后提交修正的结果。
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git status
位于分支 master
您的分支领先 'origin/master' 共 2 个提交。
  (使用 "git push" 来发布您的本地提交)
​
您有尚未合并的路径。
  (解决冲突并运行 "git commit")
  (使用 "git merge --abort" 终止合并)
​
未合并的路径:
  (使用 "git add <文件>..." 标记解决方案)
​
    双方修改:   check.txt
​
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ vim check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git add check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git commit -m "conflict"
[master 4778ff8] conflict
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git log --graph
*   commit 4778ff8f0489ee41d32f00d6819d93a15b9e8567 (HEAD -> master)
|\  Merge: d29ee28 50c0390
| | Author: yangyang-git <[email protected]>
| | Date:   Sat Sep 8 19:18:04 2018 +0800
| | 
| |     conflict
| | 
| * commit 50c0390d1957d3daef4a76e74cb110a0305ef605 (feature1)
| | Author: yangyang-git <[email protected]>
| | Date:   Sat Sep 8 19:10:49 2018 +0800
| | 
| |     47346
| | 
* | commit d29ee2894ab572202b79c318a28a86067d94644c
|/  Author: yangyang-git <[email protected]>
|   Date:   Sat Sep 8 19:13:30 2018 +0800
|   
|       fhjahfg
| 
* commit 6d9d7a21fda3ba8460bce431f6b117f4163f3cda
| Author: yangyang-git <[email protected]>
| Date:   Sat Sep 8 18:57:10 2018 +0800
| 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch -d feature1
已删除分支 feature1(曾为 50c0390)。
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch
* master
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git push origin master
对象计数中: 12, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (8/8), 完成.
写入对象中: 100% (12/12), 1.02 KiB | 522.00 KiB/s, 完成.
Total 12 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To github.com:yangyang-git/XAPython1804.git
   bfe0e9d..4778ff8  master -> master 

总结:

a.当两个人在不同的分支上进行同一个文件的改动,当把子分支合并到主分支master上的时候,则会产生冲突,必须首先解决冲突【思路:经过协商,保留其中一个人的代码,其他的统统删除,冲突的代码使用<<<<< ===== <<<<标记】,解决冲突之后,再次提交,才表示合并完成

b.使用命令git log --graph可以查看分支合并情况【git log --pretty=oneline】

2.3分支管理策略

合并分支时,在默认情况下,git会使用Fast -Forward模式,但是这种模式下,删除分支后,会丢掉分支信息

一般情况下,会禁用Fast -Forward模式

演示命令:
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout -b dev
切换到一个新分支 'dev'
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ vim check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git add check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git commit -m "fhjgh"
[dev f4c31f7] fhjgh
 1 file changed, 1 insertion(+), 1 deletion(-)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout master
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch
  dev
* master
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git merge --no-ff -m "合 并dev" dev
Merge made by the 'recursive' strategy.
 check.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git log --graph
*   commit 51a1a3086b664f853829c0e51ee80b419efd352c (HEAD -> master)
|\  Merge: 4778ff8 f4c31f7
| | Author: yangyang-git <[email protected]>
| | Date:   Sat Sep 8 19:46:40 2018 +0800
| | 
| |     合并dev
| | 
| * commit f4c31f73dbb89bd9ba5b0b22aebfde2c4ac5deb1 (dev)
|/  Author: yangyang-git <[email protected]>
|   Date:   Sat Sep 8 19:44:20 2018 +0800
|   
|       fhjgh
|   
*   commit 4778ff8f0489ee41d32f00d6819d93a15b9e8567 (origin/master, origin/HEAD)
|\  Merge: d29ee28 50c0390
| | Author: yangyang-git <[email protected]>
| | Date:   Sat Sep 8 19:18:04 2018 +0800
| | 
| |     conflict
| | 
| * commit 50c0390d1957d3daef4a76e74cb110a0305ef605
| | Author: yangyang-git <[email protected]>

总结:

在实际开发中,最好能按照以下几个原则进行分支管理

a.master分支应该是非常稳定的,也就是仅仅用来发布新的版本,平时尽量不要在master分支上干活

b.新建子分支dev,每个人都在dev的分支进行干活,每个人都有自己的分支,只需要将各自分支合并到dev

c.如果发布1.0版本时,只需要将dev分支合并到master,在master上发布版本

d.合并分支时,尽量禁用Fast-forward模式,加上--no-ff参数,就可以从历史记录中获取分支信息

2.4bug分支

每个bug通过一个新的临时分支修复,修复后,将临时分支合并,然后将临时分支删除

如果bug还未修复完成,暂时需要取处理其他的任务,bug分支还不能合并到主分支上,可以将当前工作现场储藏起来【stash】

2.5feature分支

软件开发过程中,总有很多的新功能会添加进来

添加一个新功能的时候,给新功能创建一个新的子分支,最后将新功能的分支合并到主分支即可

说明:如果某个功能被废弃掉。没有必要合并到主分支,则可以使用命令 git branch -D 需要被删除的分支名称 直接删除【强制删除】

2.6多人协作

git remote:获取的远程仓库中默认的master主分支

git remote -v:获取推送和抓取的路径

a.推送分支

可以将master主分支推送到远程仓库,同理,也可以将子分支推送到远程仓库

注意:推送分支时,要指明分支的名称

git push 远程xxx 本地xxx

演示命令:
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git branch
* dev
  master
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout master
切换到分支 'master'
您的分支领先 'origin/master' 共 5 个提交。
  (使用 "git push" 来发布您的本地提交)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git push origin master
对象计数中: 12, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (9/9), 完成.
写入对象中: 100% (12/12), 1019 bytes | 53.00 KiB/s, 完成.
Total 12 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), done.
To github.com:yangyang-git/XAPython1804.git
   4778ff8..7bc7256  master -> master
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout dev
切换到分支 'dev'
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git push origin dev
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
对象计数中: 3, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 342 bytes | 342.00 KiB/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:yangyang-git/XAPython1804.git
 * [new branch]      dev -> dev
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ vim check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git add check.txt 
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git commit -m "gsefhgj"
[dev 0fae416] gsefhgj
 1 file changed, 1 insertion(+), 1 deletion(-)
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git push origin dev
对象计数中: 3, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 292 bytes | 292.00 KiB/s, 完成.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:yangyang-git/XAPython1804.git
   6a1fe14..0fae416  dev -> dev
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git checkout master
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git merge dev
更新 7bc7256..0fae416
Fast-forward
 check.txt | 2 +-
 file1.txt | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 file1.txt
yangyang@yangyang-virMachine:~/Desktop/XAPython1804$ git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To github.com:yangyang-git/XAPython1804.git
   7bc7256..0fae416  master -> master

b.抓取分支

演示命令:
yangyang@yangyang-virMachine:~$ cd Desktop/
yangyang@yangyang-virMachine:~/Desktop$ mkdir other
yangyang@yangyang-virMachine:~/Desktop$ cd other/
yangyang@yangyang-virMachine:~/Desktop/other$ git clone [email protected]:yangyang-git/python1804.git
正克隆到 'python1804'...
remote: Counting objects: 30, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 30 (delta 0), reused 30 (delta 0), pack-reused 0
接收对象中: 100% (30/30), 完成.
yangyang@yangyang-virMachine:~/Desktop/other$ cd ..
yangyang@yangyang-virMachine:~/Desktop$ ls
other  python1804  shell  text.sh
yangyang@yangyang-virMachine:~/Desktop$ cd other/
yangyang@yangyang-virMachine:~/Desktop/other$ git branch
fatal: 不是一个 git 仓库(或者任何父目录):.git
yangyang@yangyang-virMachine:~/Desktop/other$ cd python1804/
yangyang@yangyang-virMachine:~/Desktop/other/python1804$ git branch
* master
yangyang@yangyang-virMachine:~/Desktop/other/python1804$ touch a.txt
yangyang@yangyang-virMachine:~/Desktop/other/python1804$ git add a.txt 
yangyang@yangyang-virMachine:~/Desktop/other/python1804$ git commit -m "gshjgh" 
[master f5fd54b] gshjgh
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt
yangyang@yangyang-virMachine:~/Desktop/other/python1804$ git push origin master 
对象计数中: 3, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 265 bytes | 265.00 KiB/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:yangyang-git/python1804.git
   3b60a0b..f5fd54b  master -> master
yangyang@yangyang-virMachine:~/Desktop/other/python1804$ 
yangyang@yangyang-virMachine:~/Desktop/other/python1804$ cd ../..
yangyang@yangyang-virMachine:~/Desktop$ cd python1804/
yangyang@yangyang-virMachine:~/Desktop/python1804$ git branch
* master
yangyang@yangyang-virMachine:~/Desktop/python1804$ git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 完成.
来自 github.com:yangyang-git/python1804
   3b60a0b..f5fd54b  master     -> origin/master
更新 3b60a0b..f5fd54b
Fast-forward
 a.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt
yangyang@yangyang-virMachine:~/Desktop/python1804$ ls
a.txt  text.txt

总结:

如果进行团队开发,每次在进行push之前,需要将对方的代码pull下来【先pull,如果出现冲突,解决完冲突之后将结果push】

3.标签管理

3.1创建标签

演示命令:
yangyang@yangyang-virMachine:~/Desktop/python1804$ git branch
* master
yangyang@yangyang-virMachine:~/Desktop/python1804$ git checkout -b dev
切换到一个新分支 'dev'
yangyang@yangyang-virMachine:~/Desktop/python1804$ git tag v1.0     #给当前最新的版本创建标签
yangyang@yangyang-virMachine:~/Desktop/python1804$ git tag
v1.0    #显示所有的标签
yangyang@yangyang-virMachine:~/Desktop/python1804$ git show v1.0    #显示指定标签的详细信息
commit f5fd54bde31def452cc0fa61ba23ab29b1105d73 (HEAD -> dev, tag: v1.0, origin/master, master)
Author: yangyang-git <[email protected]>
Date:   Sat Sep 8 22:53:27 2018 +0800
​
    gshjgh
​
diff --git a/a.txt b/a.txt
new file mode 100644
index 0000000..e69de29
yangyang@yangyang-virMachine:~/Desktop/python1804$ git log --pretty=oneline
f5fd54bde31def452cc0fa61ba23ab29b1105d73 (HEAD -> dev, tag: v1.0, origin/master, master) gshjgh
3b60a0bde5aebb0f10f2822c044e16a9a9e46b5e remote
91114f4492a1d2fbc5d1145cef60976fc58108b9 delete check.txt
4970717913362178e24b61b072263502249259b4 def
c799364d7cbb02c84ad0fbcecc3afa0ed4070571 on my god
1d235bf2c055db11a78097daa99e7c04f8195ded add zhangsan
0da4f317b9f97469e3a493107228a09b3c97581c fhfh
969cf64f99c9584d0206d0df70d5a157dff69a4c 4364
6846a1dbf48675a96c28f93c52032c604b50de6f modify check and text
19a9faa7f0c2a9bf861267562d6d69afe077d6d4 add abc
b80fd54fac6981ad35909ca08fbb0b8e319d2ce7 create a new file text.txt and init
yangyang@yangyang-virMachine:~/Desktop/python1804$ git tag v0.5 c799364     #给指定commit——id的版本添加标签
yangyang@yangyang-virMachine:~/Desktop/python1804$ git log --pretty=oneline
f5fd54bde31def452cc0fa61ba23ab29b1105d73 (HEAD -> dev, tag: v1.0, origin/master, master) gshjgh
3b60a0bde5aebb0f10f2822c044e16a9a9e46b5e remote
91114f4492a1d2fbc5d1145cef60976fc58108b9 delete check.txt
4970717913362178e24b61b072263502249259b4 def
c799364d7cbb02c84ad0fbcecc3afa0ed4070571 (tag: v0.5) on my god
1d235bf2c055db11a78097daa99e7c04f8195ded add zhangsan
0da4f317b9f97469e3a493107228a09b3c97581c fhfh
969cf64f99c9584d0206d0df70d5a157dff69a4c 4364
6846a1dbf48675a96c28f93c52032c604b50de6f modify check and text
19a9faa7f0c2a9bf861267562d6d69afe077d6d4 add abc
b80fd54fac6981ad35909ca08fbb0b8e319d2ce7 create a new file text.txt and init

3.2操作标签

演示命令:
yangyang@yangyang-virMachine:~/Desktop/python1804$ git tag -d v0.5    #删除标签
已删除标签 'v0.5'(曾为 c799364)
yangyang@yangyang-virMachine:~/Desktop/python1804$ git log --pretty=oneline
f5fd54bde31def452cc0fa61ba23ab29b1105d73 (HEAD -> dev, tag: v1.0, origin/master, master) gshjgh
3b60a0bde5aebb0f10f2822c044e16a9a9e46b5e remote
91114f4492a1d2fbc5d1145cef60976fc58108b9 delete check.txt
4970717913362178e24b61b072263502249259b4 def
c799364d7cbb02c84ad0fbcecc3afa0ed4070571 on my god
1d235bf2c055db11a78097daa99e7c04f8195ded add zhangsan
0da4f317b9f97469e3a493107228a09b3c97581c fhfh
969cf64f99c9584d0206d0df70d5a157dff69a4c 4364
6846a1dbf48675a96c28f93c52032c604b50de6f modify check and text
19a9faa7f0c2a9bf861267562d6d69afe077d6d4 add abc
b80fd54fac6981ad35909ca08fbb0b8e319d2ce7 create a new file text.txt and init
yangyang@yangyang-virMachine:~/Desktop/python1804$ git push origin v1.0    #推送标签到远程仓库
Total 0 (delta 0), reused 0 (delta 0)
To github.com:yangyang-git/python1804.git
 * [new tag]         v1.0 -> v1.0
yangyang@yangyang-virMachine:~/Desktop/python1804$ git push origin --tags
Everything up-to-date
yangyang@yangyang-virMachine:~/Desktop/python1804$ git tag -d v1.0    #删除本地仓库中的标签
已删除标签 'v1.0'(曾为 f5fd54b)
yangyang@yangyang-virMachine:~/Desktop/python1804$ git push origin :refs/tags/v1.0    #删除远程仓库中的标签
To github.com:yangyang-git/python1804.git
 - [deleted]         v1.0

猜你喜欢

转载自blog.csdn.net/weixin_42569562/article/details/82670401