Git的管理、撤销、删除以及创建远程仓库

文章目录

    • 管理修改
    • 撤销修改
      • 未提交到缓存区
      • 已经提交到缓存区
    • 删除文件
      • 误删文件
      • 永久删除文件
    • 添加远程仓库
    • 从远程仓库克隆
    • 从本地上传到远程仓库
    • 从远程仓库同步到本地
    • 实战克隆12306

管理修改

  • 第一步:首先添加一行数据
zhou@zhou-PC:~/Desktop$ cd test/
zhou@zhou-PC:~/Desktop/test$ cat a.txt 
natasha
hahahahaha
zhou@zhou-PC:~/Desktop/test$ echo "这是新增的一 行" >> a.txt 
zhou@zhou-PC:~/Desktop/test$ cat a.txt 
natasha
hahahahaha
这是新增的一行
  • 第二步:添加文件a.txt并查看状态
zhou@zhou-PC:~/Desktop/test$ git add a.txt
zhou@zhou-PC:~/Desktop/test$ git status 
位于分支 master
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)

	修改:     a.txt
  • 第三步:再次修改文件a.txt
zhou@zhou-PC:~/Desktop/test$ echo "再次新增添一 行" >> a.txt 
zhou@zhou-PC:~/Desktop/test$ cat a.txt 
natasha
hahahahaha
这是新增的一行
再次新增添一行
  • 第四步:提交
zhou@zhou-PC:~/Desktop/test$ git commit -m "管理修改"
[master 922b2b0] 管理修改
 1 file changed, 1 insertion(+)
zhou@zhou-PC:~/Desktop/test$ git log 
commit 922b2b0d00a5b5f16066da0e71316ef8d0770f8e
Author: chineselijie <[email protected]>
Date:   Mon Sep 16 16:02:25 2019 +0800

    管理修改

commit 60f29172f1d154a0cd02188b8d2cd4f657cf97b4
Author: chineselijie <[email protected]>
Date:   Thu Sep 12 16:55:10 2019 +0800

    添加了一行信息

commit 1909f1aa1335742aa5110a129ec4228ed900a5f5
Author: chineselijie <[email protected]>
Date:   Thu Sep 12 16:34:16 2019 +0800

    创建了一个文件

但是我们再次查看状态会发现问题:

zhou@zhou-PC:~/Desktop/test$ git status 
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     a.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a"

至此发现:第二次的修改没有被提交
下面来理清一下思路:
第一次修改之后使用了添加git add
第二次修改之后使用了提交git commit
需要使用git add命令添加后才能提交,否则第二次不会提交

使用git diff HEAD -- 文件可以查看工作区与版本库里面的最新版的区别:

zhou@zhou-PC:~/Desktop/test$ git diff HEAD -- a.txt
diff --git a/a.txt b/a.txt
index 4232553..2aa99c2 100644
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 natasha
 hahahahaha
 这是新增的一行
+再次新增添一行

注意:只有从工作区git add到缓存区之后再git commit到版本库里

撤销修改

未提交到缓存区

  • 第一步:添加一行数据
zhou@zhou-PC:~/Desktop/test$ echo "hahahahaha" >> a.txt 
zhou@zhou-PC:~/Desktop/test$ cat a.txt 
natasha
hahahahaha
这是新增的一行
再次新增添一行
hahahahaha
  • 第二步:查看状态
zhou@zhou-PC:~/Desktop/test$ git status 
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     a.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a"
  • 第三步:丢弃修改
zhou@zhou-PC:~/Desktop/test$ git checkout a.txt
zhou@zhou-PC:~/Desktop/test$ cat a.txt 
natasha
hahahahaha
这是新增的一行
再次新增添一行

已经提交到缓存区

  • 第一步:添加一行数据并提交
hou@zhou-PC:~/Desktop/test$ echo "wowowowowo" >> a.txt 
zhou@zhou-PC:~/Desktop/test$ cat a.txt 
natasha
hahahahaha
这是新增的一行
再次新增添一行
wowowowowo
zhou@zhou-PC:~/Desktop/test$ git add a.txt 
  • 第二步:查看状态
zhou@zhou-PC:~/Desktop/test$ git status
位于分支 master
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)

	修改:     a.txt
  • 第三步:丢弃修改
zhou@zhou-PC:~/Desktop/test$ git reset HEAD a.txt
重置后取消暂存的变更:
M	a.txt

此处已经将文件从缓存区切换到了工作区

zhou@zhou-PC:~/Desktop/test$ git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     a.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a"

后面再怎么操作我们应该已经知道了吧!!!

删除文件

  • 新建文件并提交到仓库
zhou@zhou-PC:~/Desktop/test$ touch test.txt
zhou@zhou-PC:~/Desktop/test$ git add test.txt 
zhou@zhou-PC:~/Desktop/test$ git commit -m "新建文件" test.txt 
[master 06f8be4] 新建文件
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

误删文件

  • 删除文件
zhou@zhou-PC:~/Desktop/test$ rm test.txt 
zhou@zhou-PC:~/Desktop/test$ ls
a.txt
  • 恢复文件
zhou@zhou-PC:~/Desktop/test$ git checkout -- test.txt
zhou@zhou-PC:~/Desktop/test$ ls
a.txt  test.txt

永久删除文件

  • 删除文件
zhou@zhou-PC:~/Desktop/test$ ls
a.txt  test.txt
zhou@zhou-PC:~/Desktop/test$ rm test.txt 
  • 查看状态
zhou@zhou-PC:~/Desktop/test$ git status test.txt 
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add/rm <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	删除:     test.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a"
  • 永久删除
hou@zhou-PC:~/Desktop/test$ git rm test.txt 
rm 'test.txt'
zhou@zhou-PC:~/Desktop/test$ git commit -m "删除了test.txt" test.txt 
[master c6fbd6a] 删除了test.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 test.txt
zhou@zhou-PC:~/Desktop/test$ git status test.txt
位于分支 master
无文件要提交,干净的工作区

现在文件就已经从版本库中删除了

添加远程仓库

  • 第1步:创建SSH Key
zhou@zhou-PC:~$ ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhou/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/zhou/.ssh/id_rsa.
Your public key has been saved in /home/zhou/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8kfjZ/YEoFsyFYi/DFygU7Dsmv8zFQvd2IZAzZg1Vk [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| o.+=oo oE       |
|. Oo+O +         |
| = ==o* .        |
|. ...+ + +       |
|..  . = S .      |
|.o . . O O .     |
|. =   + * +      |
|   +     .       |
|                 |
+----[SHA256]-----+
  • 第二步:复制key秘钥
zhou@zhou-PC:~$ ls -a
.              .eric6      .nano            .themes
..             .gconf      Pictures         Videos
.bash_history  .gitconfig  .pki             .viminfo
.bash_logout   .gksu.lock  .presage         vmware
.bashrc        .gnupg      .profile         .vmware
.cache         .gtkrc-2.0  .Public          .vscode
.config        .icons      .PyCharm2019.1   .Xauthority
.dbus          .imwheelrc  .pype            .xinputrc
.deepinwine    .ipython    .python_history  .xsession-errors
Desktop        .java       .sogouinput      .xsession-errors.old
Documents      .local      .ssh             模板
Downloads      Music       .Templates
zhou@zhou-PC:~$ cd .ssh
zhou@zhou-PC:~/.ssh$ ls
id_rsa  id_rsa.pub  known_hosts
zhou@zhou-PC:~/.ssh$ cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeWhJspY4P0JvWTKVIFrWVIFETHaAl6XEk5zRNmEZATOCt7rU1FpLw60iO+9h9bm2LqV8chJcdk4gL3cuHP2RZ/gOBJHG273Y1b+v4469lcsUSJf1BxLN7LMRYXX9RPFHEZEEEkTPaaimmX/XDyiZf7aJPqsT/MuVJa+yJ5lSEEZJqAMLs+QRMI7D8jGSraRxR5KlF1HroN+IcdA+lsG4zOB3zm2NIFIifj4vPqrXL0qr+IE+TEZbuf3Y/6/ucUYqqmGzBJUVE8gBw2o67w04QphiLtGyhDE7TlUgiUH+UAoN/4cad6wBJpJTSc3QxZk/O1M1GnzUSK+1StupcUn8b [email protected]

将所看到的字符串复制

  • 第三步:注册github账号
    (此处不演示,移步百度)

  • 第四步:添加key秘钥
    Git的管理、撤销、删除以及创建远程仓库_第1张图片

Git的管理、撤销、删除以及创建远程仓库_第2张图片

Git的管理、撤销、删除以及创建远程仓库_第3张图片

  • 第五步:创建远程仓库
    Git的管理、撤销、删除以及创建远程仓库_第4张图片

Git的管理、撤销、删除以及创建远程仓库_第5张图片Git的管理、撤销、删除以及创建远程仓库_第6张图片

Git的管理、撤销、删除以及创建远程仓库_第7张图片

从远程仓库克隆

试用于第一次本地没有这个仓库,需要将远程的仓库克隆下来

zhou@zhou-PC:~/Desktop$ mkdir abcd
zhou@zhou-PC:~/Desktop$ cd abcd/
zhou@zhou-PC:~/Desktop/abcd$ git clone [email protected]:chineselijie/test.git
正克隆到 'test'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
接收对象中: 100% (3/3), 完成.
zhou@zhou-PC:~/Desktop/abcd$ ls
test
zhou@zhou-PC:~/Desktop/abcd$ cd test/
zhou@zhou-PC:~/Desktop/abcd/test$ ls
README.md
zhou@zhou-PC:~/Desktop/abcd/test$ cat README.md 
# test
测试

从本地上传到远程仓库

适用于本地仓库需要上传到远程仓库

zhou@zhou-PC:~/Desktop/abcd/test$ cat README.md 
# test
测试
zhou@zhou-PC:~/Desktop/abcd/test$ vim README.md 
zhou@zhou-PC:~/Desktop/abcd/test$ cat README.md 
# test
测试
新增一行
zhou@zhou-PC:~/Desktop/abcd/test$ git commit -m "新增一行"
[master 61a52f0] 新增一行
 1 file changed, 2 insertions(+), 1 deletion(-)
zhou@zhou-PC:~/Desktop/abcd/test$ git push [email protected]:chineselijie/test.git
对象计数中: 3, 完成.
写入对象中: 100% (3/3), 288 bytes | 0 bytes/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:chineselijie/test.git
   031235d..61a52f0  master -> master

从远程仓库同步到本地

合适用于本地有这个仓库,需要同步一下

zhou@zhou-PC:~/Desktop/abcd/test$ git pull [email protected]:chineselijie/test.git
来自 github.com:chineselijie/test
 * branch            HEAD       -> FETCH_HEAD
已经是最新的。

实战克隆12306

github地址:https://github.com/testerSunshine/12306

Git的管理、撤销、删除以及创建远程仓库_第8张图片

zhou@zhou-PC:~/Desktop$ git clone https://github.com/testerSunshine/12306.git
正克隆到 '12306'...
remote: Enumerating objects: 2426, done.
remote: Total 2426 (delta 0), reused 0 (delta 0), pack-reused 2426
接收对象中: 100% (2426/2426), 57.03 MiB | 301.00 KiB/s, 完成.
处理 delta 中: 100% (1593/1593), 完成.
zhou@zhou-PC:~/Desktop$ ls
1
12306
zhou@zhou-PC:~/Desktop$ cd 12306
zhou@zhou-PC:~/Desktop/12306$ ls
12306.image.model.h5  docker-compose.yml        init         model.v2.0.h5  requirements.txt  tkcode.png  Update.md
agency                Dockerfile                __init__.py  myException    run.py            tmp         verify
cdn_list              docker_install_centos.sh  inter        myUrllib       station_name.txt  uml
config                docker.sh                 LICENSE      README.md      TickerConfig.py   UnitTest

你可能感兴趣的:(Git)