• Linux篇【4】:Git,Gitee,GitHub


    在 Linux 系统中,如何将普通源文件和普通头文件上传到 Gitee ? 

            Git 是一个分布式的版本控制器,目前可以理解成百度云盘,其次,在 Linux 系统中,Git 也是一个软件/工具/指令,在 Windows 系统中,Git 也是一个软件/工具,Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式的版本控制器,而 Gitee 或 Github 则都是基于 Git 搭建起来的网站,在本地和远端都有着自己的 Git 仓库 、


            登录 Gitee ,新建一个 Gitee 仓库,若不想在 Gitee 上面新建一个远端的 Gitee 仓库,则也可以在本地新建一个本地的 Gitee 仓库,再推送到远端,但是比较麻烦,不推荐使用,现在国家对于信息管理要求越来越严格,当前在 Gitee 上默认只能创建私有仓库(仅仓库成员可见),创建好之后,当仓库被审核通过后,若再想进行开源,则可以在仓库管理中进行手动设置、

    1. [HJM@hjmlcc ~]$ ls
    2. Makefile process.c
    3. //使用下述指令可将远端的 Git 仓库克隆到本地、
    4. [HJM@hjmlcc ~]$ git clone https://gitee.com/LCC11223/for_-linux_-code.git
    5. Cloning into 'for_-linux_-code'...
    6. //输入 Gitee 的账号和密码、
    7. Username for 'https://gitee.com': 13386323259
    8. Password for 'https://13386323259@gitee.com':
    9. remote: Enumerating objects: 6, done.
    10. remote: Counting objects: 100% (6/6), done.
    11. remote: Compressing objects: 100% (6/6), done.
    12. remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
    13. Unpacking objects: 100% (6/6), done.
    14. [HJM@hjmlcc ~]$ ls
    15. for_-linux_-code Makefile process.c
    16. [HJM@hjmlcc ~]$ ll
    17. total 12
    18. drwxrwxr-x 3 HJM HJM 4096 Nov 7 18:26 for_-linux_-code //目录文件、
    19. // for_-linux_-code 这就是本地的 Git 仓库(目录文件),由克隆远端的 Git 仓库得到、
    20. -rw-rw-r-- 1 HJM HJM 80 Nov 6 15:01 Makefile
    21. -rw-rw-r-- 1 HJM HJM 1116 Nov 6 16:06 process.c
    22. [HJM@hjmlcc ~]$ cd for_-linux_-code
    23. [HJM@hjmlcc for_-linux_-code]$ ls
    24. LICENSE README.en.md README.md
    25. [HJM@hjmlcc for_-linux_-code]$ ll
    26. total 12
    27. -rw-rw-r-- 1 HJM HJM 637 Nov 7 18:26 LICENSE
    28. -rw-rw-r-- 1 HJM HJM 865 Nov 7 18:26 README.en.md
    29. -rw-rw-r-- 1 HJM HJM 954 Nov 7 18:26 README.md
    30. [HJM@hjmlcc for_-linux_-code]$ ls -al
    31. total 28
    32. drwxrwxr-x 3 HJM HJM 4096 Nov 7 18:26 .
    33. drwx---rwx 9 HJM HJM 4096 Nov 7 18:26 ..
    34. drwxrwxr-x 8 HJM HJM 4096 Nov 7 18:26 .git
    35. //在当前路径下存在一个以.开头的隐藏的目录文件,这就是所谓的本地的 Git 仓库(目录文件)、
    36. //所谓的将本地的代码同步到远端,不仅仅只是同步普通文件:LICENSE,README.en.md和README.md
    37. //还有就是将本地的 Git 仓库中的内容同步到远端的 Git 仓库中、
    38. -rw-rw-r-- 1 HJM HJM 270 Nov 7 18:26 .gitignore
    39. -rw-rw-r-- 1 HJM HJM 637 Nov 7 18:26 LICENSE
    40. -rw-rw-r-- 1 HJM HJM 865 Nov 7 18:26 README.en.md
    41. -rw-rw-r-- 1 HJM HJM 954 Nov 7 18:26 README.md
    42. [HJM@hjmlcc for_-linux_-code]$ tree .git
    43. .git
    44. |-- branches
    45. |-- config
    46. |-- description
    47. |-- HEAD
    48. |-- hooks
    49. | |-- applypatch-msg.sample
    50. | |-- commit-msg.sample
    51. | |-- post-update.sample
    52. | |-- pre-applypatch.sample
    53. | |-- pre-commit.sample
    54. | |-- prepare-commit-msg.sample
    55. | |-- pre-push.sample
    56. | |-- pre-rebase.sample
    57. | `-- update.sample
    58. |-- index
    59. |-- info
    60. | `-- exclude
    61. |-- logs
    62. | |-- HEAD
    63. | `-- refs
    64. | |-- heads
    65. | | `-- master
    66. | `-- remotes
    67. | `-- origin
    68. | `-- HEAD
    69. |-- objects
    70. | |-- 1b
    71. | | `-- 63b36d648f566432eea5db256596ddbd2d513f
    72. | |-- 25
    73. | | `-- 9148fa18f9fb7ef58563f4ff15fc7b172339fb
    74. | |-- 71
    75. | | `-- 70d07d9d8c63ec3d0d2a0c6452c855585e0dbd
    76. | |-- af
    77. | | `-- 0ce369a0d2dbf87e87b41f72f491d5b6d99c25
    78. | |-- f1
    79. | | |-- 368e746a904df720529cd9eeba5c563410a1f7
    80. | | `-- 6e18c48ed6547149694f1a2a217c1038f56d1a
    81. | |-- info
    82. | `-- pack
    83. |-- packed-refs
    84. `-- refs
    85. |-- heads
    86. | `-- master
    87. |-- remotes
    88. | `-- origin
    89. | `-- HEAD
    90. `-- tags
    91. 21 directories, 26 files
    92. //本地的 Git 仓库中的内容一定不要修改,否则就会出错、
    93. [HJM@hjmlcc for_-linux_-code]$ touch test.c
    94. [HJM@hjmlcc for_-linux_-code]$ vim test.c
    95. [HJM@hjmlcc for_-linux_-code]$ ls
    96. LICENSE README.en.md README.md test.c
    97. [HJM@hjmlcc for_-linux_-code]$ cat test.c
    98. #include
    99. int main()
    100. {
    101. printf("Hello,Lcc\n");
    102. return 0;
    103. }
    104. [HJM@hjmlcc for_-linux_-code]$ ll
    105. total 16
    106. -rw-rw-r-- 1 HJM HJM 637 Nov 8 11:02 LICENSE
    107. -rw-rw-r-- 1 HJM HJM 865 Nov 8 11:02 README.en.md
    108. -rw-rw-r-- 1 HJM HJM 954 Nov 8 11:02 README.md
    109. -rw-rw-r-- 1 HJM HJM 70 Nov 8 11:05 test.c
    110. //查看本地的 Git 仓库与远端的 Git 仓库之间的关系、
    111. [HJM@hjmlcc for_-linux_-code]$ git status
    112. # On branch master
    113. # Untracked files:
    114. # (use "git add ..." to include in what will be committed)
    115. #
    116. # test.c //当前有一个没有被管理的普通源文件:test.c、
    117. nothing added to commit but untracked files present (use "git add" to track)
    118. //三板斧:
    119. //第一板斧:
    120. [HJM@hjmlcc for_-linux_-code]$ git add test.c
    121. //第二板斧:
    122. //该操作是把普通源文件test.c添加到本地的 Git 仓库,其中,-m(message,不可省略):代表本次的提交
    123. //日志,注意:提交日志不能乱写、
    124. [HJM@hjmlcc for_-linux_-code]$ git commit -m "新增了一个测试代码,仅仅是一个简单的程序"
    125. [master c90d03b] 新增了一个测试代码,仅仅是一个简单的程序
    126. 1 file changed, 6 insertions(+)
    127. create mode 100644 test.c
    128. //第三板斧:
    129. [HJM@hjmlcc for_-linux_-code]$ git push
    130. //该操作是把普通源文件test.c添加到远端的 Git 仓库、
    131. warning: push.default is unset; its implicit value is changing in
    132. Git 2.0 from 'matching' to 'simple'. To squelch this message
    133. and maintain the current behavior after the default changes, use:
    134. git config --global push.default matching
    135. To squelch this message and adopt the new behavior now, use:
    136. git config --global push.default simple
    137. See 'git help config' and search for 'push.default' for further information.
    138. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    139. 'current' instead of 'simple' if you sometimes use older versions of Git)
    140. //上述的警告可忽略不管、
    141. //输入 Gitee 的账号和密码、
    142. Username for 'https://gitee.com': 13386323259
    143. Password for 'https://13386323259@gitee.com':
    144. Counting objects: 4, done.
    145. Delta compression using up to 2 threads.
    146. Compressing objects: 100% (3/3), done.
    147. Writing objects: 100% (3/3), 400 bytes | 0 bytes/s, done.
    148. Total 3 (delta 1), reused 0 (delta 0)
    149. remote: Powered by GITEE.COM [GNK-6.4]
    150. To https://gitee.com/LCC11223/for_-linux_-code.git
    151. f77bd8f..c90d03b master -> master
    152. [HJM@hjmlcc for_-linux_-code]$ clear

            经过上述在线编辑的操作后,此时本地的 Git 仓库中的普通源文件 test.c 中的内容和远端的 Git仓库中的普通源文件 test.c 中的内容就不相同了,从而导致本地 Git 仓库和远端 Git 仓库中的内容就不同了、 

    1. [HJM@hjmlcc for_-linux_-code]$ clear
    2. [HJM@hjmlcc for_-linux_-code]$ ls
    3. LICENSE README.en.md README.md test.c
    4. [HJM@hjmlcc for_-linux_-code]$ touch lcc.c
    5. [HJM@hjmlcc for_-linux_-code]$ echo "lccwan" > lcc.c
    6. [HJM@hjmlcc for_-linux_-code]$ cat lcc.c
    7. lccwan
    8. [HJM@hjmlcc for_-linux_-code]$ git add lcc.c
    9. [HJM@hjmlcc for_-linux_-code]$ git commit -m "仅仅用来测试"
    10. [master 88e5d89] 仅仅用来测试
    11. 1 file changed, 1 insertion(+), 1 deletion(-)
    12. [HJM@hjmlcc for_-linux_-code]$ git push
    13. warning: push.default is unset; its implicit value is changing in
    14. Git 2.0 from 'matching' to 'simple'. To squelch this message
    15. and maintain the current behavior after the default changes, use:
    16. git config --global push.default matching
    17. To squelch this message and adopt the new behavior now, use:
    18. git config --global push.default simple
    19. See 'git help config' and search for 'push.default' for further information.
    20. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    21. 'current' instead of 'simple' if you sometimes use older versions of Git)
    22. //上述的警告可忽略不管、
    23. //输入 Gitee 的账号和密码、
    24. Username for 'https://gitee.com': 13386323259
    25. Password for 'https://13386323259@gitee.com':
    26. To https://gitee.com/LCC11223/for_-linux_-code.git
    27. ! [rejected] master -> master (fetch first)
    28. error: failed to push some refs to 'https://gitee.com/LCC11223/for_-linux_-code.git'
    29. hint: Updates were rejected because the remote contains work that you do
    30. hint: not have locally. This is usually caused by another repository pushing
    31. hint: to the same ref. You may want to first merge the remote changes (e.g.,
    32. hint: 'git pull') before pushing again.
    33. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    34. [HJM@hjmlcc for_-linux_-code]$

            此时,就出现了一些冲突(hint),这是因为,由于上面的在线编辑的操作,导致本地的 Git 仓库中的内容和远端 Git 仓库中的内容不一样了,但是,如果我们再想往 Gitee 上面提交新的普通文件(普通头文件或普通源文件)时,前提要保证,本地 Git 仓库中的内容和远端 Git 仓库中的内容一样才可以,否则就会出现冲突,我们只考虑往 Gitee 上面提交普通文件中的普通源文件和普通头文件,其他的一律不考虑,具体解决方法如下所示:

    1. //让本地的 Git 仓库中的内容与远端 Git 仓库中的内容保持一样、
    2. [HJM@hjmlcc for_-linux_-code]$ git pull
    3. Username for 'https://gitee.com': 13386323259
    4. Password for 'https://13386323259@gitee.com':
    5. remote: Enumerating objects: 5, done.
    6. remote: Counting objects: 100% (5/5), done.
    7. remote: Compressing objects: 100% (2/2), done.
    8. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
    9. Unpacking objects: 100% (3/3), done.
    10. From https://gitee.com/LCC11223/for_-linux_-code
    11. 660c252..6eba4f3 master -> origin/master
    12. Error detected while processing /home/HJM/.vimrc:
    13. line 5:
    14. E492: Not an editor command: Plug 'Valloric/YouCompleteMe'
    15. line 6:
    16. E492: Not an editor command: Plug 'bling/vim-airline'
    17. line 7:
    18. E492: Not an editor command: Plug 'vim-airline/vim-airline-themes'
    19. line 8:
    20. E492: Not an editor command: Plug 'morhetz/gruvbox'
    21. line 9:
    22. E492: Not an editor command: Plug 'octol/vim-cpp-enhanced-highlight'
    23. line 10:
    24. E492: Not an editor command: Plug 'SirVer/ultisnips'
    25. line 11:
    26. E492: Not an editor command: Plug 'tpope/vim-surround'
    27. line 12:
    28. E492: Not an editor command: Plug 'flazz/vim-colorschemes'
    29. line 13:
    30. E492: Not an editor command: Plug 'scrooloose/nerdtree'
    31. line 14:
    32. E492: Not an editor command: Plug 'python-mode/python-mode'
    33. line 15:
    34. E492: Not an editor command: Plug 'scrooloose/nerdcommenter'
    35. line 16:
    36. E492: Not an editor command: Plug 'Yggdroot/LeaderF'
    37. line 17:
    38. E492: Not an editor command: Plug 'cpiger/NeoDebug'
    39. line 18:
    40. E492: Not an editor command: Plug 'ryanoasis/vim-devicons'
    41. line 22:
    42. E492: Not an editor command: Plug 'autozimu/LanguageClient-neovim', { 'branch': 'next', 'do': 'bash install.sh', }
    43. line 23:
    44. E492: Not an editor command: Plug 'fatih/vim-go'
    45. line 30:
    46. E185: Cannot find color scheme 'luna-term'
    47. line 59:
    48. E518: Unknown option: foldmethod=marker
    49. line 142:
    50. E518: Unknown option: foldenable
    51. line 150:
    52. E518: Unknown option: foldmethod=indent
    53. line 151:
    54. E518: Unknown option: foldlevel=99
    55. line 295:
    56. E31: No such mapping
    57. line 296:
    58. E31: No such mapping
    59. line 297:
    60. E31: No such mapping
    61. line 298:
    62. E31: No such mapping
    63. line 299:
    64. E31: No such mapping
    65. line 300:
    66. E31: No such mapping
    67. line 301:
    68. E31: No such mapping
    69. line 302:
    70. E31: No such mapping
    71. line 307:
    72. E492: Not an editor command: ^Iterminal
    73. Press ENTER or type command to continue
    74. //此时可能因为vim配置存在一些问题(不支持git)导致出现上述这些内容,直接敲回车,再进入底行/末行
    75. //模式下输入q!,再敲回车,再进入底行/末行模式下输入q!,再敲回车,得到如下结果:
    76. Merge made by the 'recursive' strategy.
    77. lcc.c | 2 ++
    78. 1 file changed, 2 insertions(+)
    79. [HJM@hjmlcc for_-linux_-code]$
    80. //此时就默认本地的 Git 仓库中的内容与远端 Git 仓库中的内容保持一样了、
    81. [HJM@hjmlcc for_-linux_-code]$ cat test.c
    82. #include
    83. int main()
    84. {
    85. printf("Hello,Lcc\n");
    86. printf("Hello,Hjm\n");
    87. return 0;
    88. }
    89. [HJM@hjmlcc for_-linux_-code]$ git push
    90. warning: push.default is unset; its implicit value is changing in
    91. Git 2.0 from 'matching' to 'simple'. To squelch this message
    92. and maintain the current behavior after the default changes, use:
    93. git config --global push.default matching
    94. To squelch this message and adopt the new behavior now, use:
    95. git config --global push.default simple
    96. See 'git help config' and search for 'push.default' for further information.
    97. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    98. 'current' instead of 'simple' if you sometimes use older versions of Git)
    99. //上述的警告可忽略不管、
    100. //输入 Gitee 的账号和密码、
    101. Username for 'https://gitee.com': 13386323259
    102. Password for 'https://13386323259@gitee.com':
    103. Counting objects: 7, done.
    104. Delta compression using up to 2 threads.
    105. Compressing objects: 100% (4/4), done.
    106. Writing objects: 100% (5/5), 554 bytes | 0 bytes/s, done.
    107. Total 5 (delta 2), reused 0 (delta 0)
    108. remote: Powered by GITEE.COM [GNK-6.4]
    109. To https://gitee.com/LCC11223/for_-linux_-code.git
    110. 6eba4f3..6bd0bf2 master -> master
    111. [HJM@hjmlcc for_-linux_-code]$ git log
    112. commit d6d69d1c31fcd913bd7934fe0d8a9a1fa6743891
    113. Merge: fe36cbb 5eda4f1
    114. Author: 惠俊明 <915398909@qq.com>
    115. Date: Tue Nov 8 11:15:30 2022 +0800
    116. Merge branch 'master' of https://gitee.com/LCC11223/for_-linux_-code
    117. commit fe36cbb7397f60c5b1d048f639766f6fe2efd142
    118. Author: 惠俊明 <915398909@qq.com>
    119. Date: Tue Nov 8 11:13:08 2022 +0800
    120. 仅仅用来测试
    121. commit 5eda4f162682114eccec5b0cf522a1196b5d351d
    122. Author: 惠俊明 <915398909@qq.com>
    123. Date: Tue Nov 8 03:11:58 2022 +0000
    124. update test.c.
    125. 再次添加日志
    126. Signed-off-by: 惠俊明 <915398909@qq.com>
    127. commit a6c196de4e711453d06e623b3d58ae55a7c7ed34
    128. Author: 惠俊明 <915398909@qq.com>
    129. Date: Tue Nov 8 11:09:40 2022 +0800
    130. 新增了一个测试代码,仅仅是一个简单的程序
    131. commit 25613b809ff363adc777fbd19d17f5d0fa6b2cb3
    132. Author: 惠俊明 <915398909@qq.com>
    133. Date: Tue Nov 8 03:02:01 2022 +0000
    134. : //输入q退出、


    当首次使用 git 软件/工具/指令时,可能会提示需要设置用户名和邮箱,如下所示:

    1. //在某一个本地的 Git 仓库中设置全部的本地的 Git 仓库的用户名: 常用、
    2. git config --global user.name "惠俊明"
    3. //在某一个本地的 Git 仓库中设置全部的本地的 Git 仓库的邮箱: 常用、
    4. git config --global user.email 915398909@qq.com
    5. //在某一个本地的 Git 仓库中设置当前的本地的 Git 仓库的用户名:
    6. git config user.name "惠俊明"
    7. //在某一个本地的 Git 仓库中设置当前的本地的 Git 仓库的邮箱:
    8. git config user.email 915398909@qq.com
    9. //在某一个本地的 Git 仓库中查看当前的本地的 Git 仓库的用户名和邮箱:
    10. git config user.name
    11. git config user.email

    如何实现如下所示的功能:

    1. [HJM@hjmlcc ~]$ ls
    2. Makefile process.c
    3. [HJM@hjmlcc ~]$ git clone https://gitee.com/LCC11223/for_-linux_-delete.git
    4. Cloning into 'for_-linux_-delete'...
    5. Username for 'https://gitee.com': 13386323259
    6. Password for 'https://13386323259@gitee.com':
    7. remote: Enumerating objects: 11, done.
    8. remote: Counting objects: 100% (11/11), done.
    9. remote: Compressing objects: 100% (10/10), done.
    10. remote: Total 11 (delta 1), reused 0 (delta 0), pack-reused 0
    11. Unpacking objects: 100% (11/11), done.
    12. [HJM@hjmlcc ~]$ ls
    13. for_-linux_-delete Makefile process.c
    14. [HJM@hjmlcc ~]$ cd for_-linux_-delete
    15. [HJM@hjmlcc for_-linux_-delete]$ ls
    16. LICENSE README.en.md README.md
    17. [HJM@hjmlcc for_-linux_-delete]$ mkdir 2022_11_8
    18. [HJM@hjmlcc for_-linux_-delete]$ ls
    19. 2022_11_8 LICENSE README.en.md README.md
    20. [HJM@hjmlcc for_-linux_-delete]$ cd 2022_11_8
    21. [HJM@hjmlcc 2022_11_8]$ ls
    22. [HJM@hjmlcc 2022_11_8]$ touch lcc.c
    23. [HJM@hjmlcc 2022_11_8]$ vim lcc.c
    24. [HJM@hjmlcc 2022_11_8]$ cat lcc.c
    25. #include
    26. int main()
    27. {
    28. printf("Hello,Lcc\n");
    29. return 0;
    30. }
    31. [HJM@hjmlcc 2022_11_8]$ git add lcc.c
    32. [HJM@hjmlcc 2022_11_8]$ git commit -m "新增了一个测试代码,仅仅是一个简单的程序"
    33. [master 170320e] 新增了一个测试代码,仅仅是一个简单的程序
    34. 1 file changed, 6 insertions(+)
    35. create mode 100644 2022_11_8/lcc.c
    36. [HJM@hjmlcc 2022_11_8]$ git push
    37. warning: push.default is unset; its implicit value is changing in
    38. Git 2.0 from 'matching' to 'simple'. To squelch this message
    39. and maintain the current behavior after the default changes, use:
    40. git config --global push.default matching
    41. To squelch this message and adopt the new behavior now, use:
    42. git config --global push.default simple
    43. See 'git help config' and search for 'push.default' for further information.
    44. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    45. 'current' instead of 'simple' if you sometimes use older versions of Git)
    46. Username for 'https://gitee.com': 13386323259
    47. Password for 'https://13386323259@gitee.com':
    48. Counting objects: 5, done.
    49. Delta compression using up to 2 threads.
    50. Compressing objects: 100% (3/3), done.
    51. Writing objects: 100% (4/4), 447 bytes | 0 bytes/s, done.
    52. Total 4 (delta 1), reused 0 (delta 0)
    53. remote: Powered by GITEE.COM [GNK-6.4]
    54. To https://gitee.com/LCC11223/for_-linux_-delete.git
    55. 24cd5c4..170320e master -> master
    56. [HJM@hjmlcc 2022_11_8]$

    关于 git 的 .gitignore 问题

    1. [HJM@hjmlcc ~]$ clear
    2. [HJM@hjmlcc ~]$ ls
    3. Makefile process.c
    4. [HJM@hjmlcc ~]$ git clone https://gitee.com/LCC11223/for_-linux_-delete.git
    5. Cloning into 'for_-linux_-delete'...
    6. Username for 'https://gitee.com': 13386323259
    7. Password for 'https://13386323259@gitee.com':
    8. remote: Enumerating objects: 37, done.
    9. remote: Counting objects: 100% (37/37), done.
    10. remote: Compressing objects: 100% (35/35), done.
    11. remote: Total 37 (delta 12), reused 0 (delta 0), pack-reused 0
    12. Unpacking objects: 100% (37/37), done.
    13. [HJM@hjmlcc ~]$ ls
    14. for_-linux_-delete Makefile process.c
    15. [HJM@hjmlcc ~]$ cd for_-linux_-delete
    16. [HJM@hjmlcc for_-linux_-delete]$ ls
    17. 2022_11_8 LICENSE README.en.md README.md
    18. [HJM@hjmlcc for_-linux_-delete]$ cd 2022_11_8
    19. [HJM@hjmlcc 2022_11_8]$ ls
    20. lcc.c
    21. [HJM@hjmlcc 2022_11_8]$ cd ..
    22. [HJM@hjmlcc for_-linux_-delete]$ ls
    23. 2022_11_8 LICENSE README.en.md README.md
    24. [HJM@hjmlcc for_-linux_-delete]$ ls -al
    25. total 32
    26. drwxrwxr-x 4 HJM HJM 4096 Nov 8 15:54 .
    27. drwx---rwx 9 HJM HJM 4096 Nov 8 15:54 ..
    28. drwxrwxr-x 2 HJM HJM 4096 Nov 8 15:54 2022_11_8
    29. drwxrwxr-x 8 HJM HJM 4096 Nov 8 15:54 .git
    30. -rw-rw-r-- 1 HJM HJM 270 Nov 8 15:54 .gitignore
    31. -rw-rw-r-- 1 HJM HJM 637 Nov 8 15:54 LICENSE
    32. -rw-rw-r-- 1 HJM HJM 832 Nov 8 15:54 README.en.md
    33. -rw-rw-r-- 1 HJM HJM 921 Nov 8 15:54 README.md
    34. [HJM@hjmlcc for_-linux_-delete]$ vim .gitignore
    35. [HJM@hjmlcc for_-linux_-delete]$ cat .gitignore
    36. # 自己定义的:
    37. *.x
    38. *.X
    39. # Prerequisites
    40. *.d
    41. # Compiled Object files
    42. *.slo
    43. *.lo
    44. *.o
    45. *.obj
    46. # Precompiled Headers
    47. *.gch
    48. *.pch
    49. # Compiled Dynamic libraries
    50. *.so
    51. *.dylib
    52. *.dll
    53. # Fortran module files
    54. *.mod
    55. *.smod
    56. # Compiled Static libraries
    57. *.lai
    58. *.la
    59. *.a
    60. *.lib
    61. # Executables
    62. *.exe
    63. *.out
    64. *.app
    65. [HJM@hjmlcc for_-linux_-delete]$ ls
    66. 2022_11_8 LICENSE README.en.md README.md
    67. [HJM@hjmlcc for_-linux_-delete]$ cd 2022_11_8
    68. [HJM@hjmlcc 2022_11_8]$ ls
    69. lcc.c
    70. [HJM@hjmlcc 2022_11_8]$ touch lcc.x
    71. [HJM@hjmlcc 2022_11_8]$ touch lcc.X
    72. [HJM@hjmlcc 2022_11_8]$ touch lcc.y
    73. [HJM@hjmlcc 2022_11_8]$ touch lcc.Y
    74. [HJM@hjmlcc 2022_11_8]$ ls
    75. lcc.c lcc.x lcc.X lcc.y lcc.Y
    76. [HJM@hjmlcc 2022_11_8]$ git add .
    77. [HJM@hjmlcc 2022_11_8]$ git commit -m "测试.gitignore"
    78. [master 1a628cd] 测试.gitignore
    79. 2 files changed, 0 insertions(+), 0 deletions(-)
    80. create mode 100644 2022_11_8/lcc.Y
    81. create mode 100644 2022_11_8/lcc.y
    82. [HJM@hjmlcc 2022_11_8]$ git push
    83. warning: push.default is unset; its implicit value is changing in
    84. Git 2.0 from 'matching' to 'simple'. To squelch this message
    85. and maintain the current behavior after the default changes, use:
    86. git config --global push.default matching
    87. To squelch this message and adopt the new behavior now, use:
    88. git config --global push.default simple
    89. See 'git help config' and search for 'push.default' for further information.
    90. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    91. 'current' instead of 'simple' if you sometimes use older versions of Git)
    92. Username for 'https://gitee.com': 13386323259
    93. Password for 'https://13386323259@gitee.com':
    94. Counting objects: 6, done.
    95. Delta compression using up to 2 threads.
    96. Compressing objects: 100% (3/3), done.
    97. Writing objects: 100% (4/4), 348 bytes | 0 bytes/s, done.
    98. Total 4 (delta 1), reused 0 (delta 0)
    99. remote: Powered by GITEE.COM [GNK-6.4]
    100. To https://gitee.com/LCC11223/for_-linux_-delete.git
    101. 8d1397f..1a628cd master -> master
    102. [HJM@hjmlcc 2022_11_8]$ git status
    103. # 0n branch master
    104. nothing to commit , working directory clean
    105. [HJM@hjmlcc 2022_11_8]$


    对于 Git Version 1.x :


    一:

    1. [HJM@hjmlcc ~]$ ls
    2. Makefile process.c
    3. [HJM@hjmlcc ~]$ git clone https://gitee.com/LCC11223/for_-linux_-code.git
    4. Cloning into 'for_-linux_-code'...
    5. Username for 'https://gitee.com': 13386323259
    6. Password for 'https://13386323259@gitee.com':
    7. remote: Enumerating objects: 75, done.
    8. remote: Counting objects: 100% (75/75), done.
    9. remote: Compressing objects: 100% (65/65), done.
    10. remote: Total 75 (delta 24), reused 0 (delta 0), pack-reused 0
    11. Unpacking objects: 100% (75/75), done.
    12. [HJM@hjmlcc ~]$ ls
    13. for_-linux_-code Makefile process.c
    14. [HJM@hjmlcc ~]$ cd for_-linux_-code
    15. [HJM@hjmlcc for_-linux_-code]$ ls
    16. LICENSE README.en.md README.md
    17. [HJM@hjmlcc for_-linux_-code]$ mkdir 2022_11_8
    18. [HJM@hjmlcc for_-linux_-code]$ ls
    19. 2022_11_8 LICENSE README.en.md README.md
    20. [HJM@hjmlcc for_-linux_-code]$ cd 2022_11_8
    21. [HJM@hjmlcc 2022_11_8]$ ls
    22. [HJM@hjmlcc 2022_11_8]$ touch lcc.c
    23. [HJM@hjmlcc 2022_11_8]$ vim lcc.c
    24. [HJM@hjmlcc 2022_11_8]$ cat lcc.c
    25. woailiuchenchen
    26. [HJM@hjmlcc 2022_11_8]$ git add lcc.c
    27. [HJM@hjmlcc 2022_11_8]$ git commit -m "仅仅用来测试"
    28. [master 5b2372f] 仅仅用来测试
    29. 1 file changed, 1 insertion(+)
    30. create mode 100644 2022_11_8/lcc.c
    31. [HJM@hjmlcc 2022_11_8]$ git push
    32. warning: push.default is unset; its implicit value is changing in
    33. Git 2.0 from 'matching' to 'simple'. To squelch this message
    34. and maintain the current behavior after the default changes, use:
    35. git config --global push.default matching
    36. To squelch this message and adopt the new behavior now, use:
    37. git config --global push.default simple
    38. See 'git help config' and search for 'push.default' for further information.
    39. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    40. 'current' instead of 'simple' if you sometimes use older versions of Git)
    41. Username for 'https://gitee.com': 13386323259
    42. Password for 'https://13386323259@gitee.com':
    43. Counting objects: 5, done.
    44. Delta compression using up to 2 threads.
    45. Compressing objects: 100% (2/2), done.
    46. Writing objects: 100% (4/4), 350 bytes | 0 bytes/s, done.
    47. Total 4 (delta 1), reused 0 (delta 0)
    48. remote: Powered by GITEE.COM [GNK-6.4]
    49. To https://gitee.com/LCC11223/for_-linux_-code.git
    50. 4fb04d9..5b2372f master -> master
    51. [HJM@hjmlcc 2022_11_8]$

    1. [HJM@hjmlcc 2022_11_8]$ ls
    2. lcc.c
    3. [HJM@hjmlcc 2022_11_8]$ vim lcc.c
    4. [HJM@hjmlcc 2022_11_8]$ cat lcc.c
    5. HJMailiuchenchen
    6. [HJM@hjmlcc 2022_11_8]$ touch hjm.c
    7. [HJM@hjmlcc 2022_11_8]$ echo "lcc" > hjm.c
    8. [HJM@hjmlcc 2022_11_8]$ ls
    9. hjm.c lcc.c
    10. [HJM@hjmlcc 2022_11_8]$ cat hjm.c
    11. lcc
    12. [HJM@hjmlcc 2022_11_8]$ git add .
    13. [HJM@hjmlcc 2022_11_8]$ git commit -m "测试指令git add ."
    14. [master bd19d9b] 测试指令git add .
    15. 2 files changed, 2 insertions(+), 1 deletion(-)
    16. create mode 100644 2022_11_8/hjm.c
    17. [HJM@hjmlcc 2022_11_8]$ git push
    18. warning: push.default is unset; its implicit value is changing in
    19. Git 2.0 from 'matching' to 'simple'. To squelch this message
    20. and maintain the current behavior after the default changes, use:
    21. git config --global push.default matching
    22. To squelch this message and adopt the new behavior now, use:
    23. git config --global push.default simple
    24. See 'git help config' and search for 'push.default' for further information.
    25. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    26. 'current' instead of 'simple' if you sometimes use older versions of Git)
    27. Username for 'https://gitee.com': 13386323259
    28. Password for 'https://13386323259@gitee.com':
    29. Counting objects: 8, done.
    30. Delta compression using up to 2 threads.
    31. Compressing objects: 100% (3/3), done.
    32. Writing objects: 100% (5/5), 379 bytes | 0 bytes/s, done.
    33. Total 5 (delta 1), reused 0 (delta 0)
    34. remote: Powered by GITEE.COM [GNK-6.4]
    35. To https://gitee.com/LCC11223/for_-linux_-code.git
    36. 5b2372f..bd19d9b master -> master
    37. [HJM@hjmlcc 2022_11_8]$


    二:

    1. [HJM@hjmlcc ~]$ ls
    2. for_-linux_-code Makefile process.c
    3. [HJM@hjmlcc ~]$ cd for_-linux_-code
    4. [HJM@hjmlcc for_-linux_-code]$ ls
    5. 2022_11_8 LICENSE README.en.md README.md
    6. [HJM@hjmlcc for_-linux_-code]$ cd 2022_11_8
    7. [HJM@hjmlcc 2022_11_8]$ ls
    8. hjm.c lcc.c
    9. [HJM@hjmlcc 2022_11_8]$ vim lcc.c //修改普通源文件lcc.c中的内容、
    10. [HJM@hjmlcc 2022_11_8]$ rm hjm.c //删除普通源文件hjm.c、
    11. [HJM@hjmlcc 2022_11_8]$ ls
    12. lcc.c
    13. [HJM@hjmlcc 2022_11_8]$ cat lcc.c
    14. HJMailiuchenchen521
    15. [HJM@hjmlcc 2022_11_8]$ git add -u
    16. [HJM@hjmlcc 2022_11_8]$ git commit -m "测试git add -u"
    17. [master 463dd4c] 测试git add -u
    18. 2 files changed, 1 insertion(+), 2 deletions(-)
    19. delete mode 100644 2022_11_8/hjm.c
    20. [HJM@hjmlcc 2022_11_8]$ git push
    21. warning: push.default is unset; its implicit value is changing in
    22. Git 2.0 from 'matching' to 'simple'. To squelch this message
    23. and maintain the current behavior after the default changes, use:
    24. git config --global push.default matching
    25. To squelch this message and adopt the new behavior now, use:
    26. git config --global push.default simple
    27. See 'git help config' and search for 'push.default' for further information.
    28. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    29. 'current' instead of 'simple' if you sometimes use older versions of Git)
    30. Username for 'https://gitee.com': 13386323259
    31. Password for 'https://13386323259@gitee.com':
    32. Counting objects: 7, done.
    33. Delta compression using up to 2 threads.
    34. Compressing objects: 100% (2/2), done.
    35. Writing objects: 100% (4/4), 335 bytes | 0 bytes/s, done.
    36. Total 4 (delta 1), reused 0 (delta 0)
    37. remote: Powered by GITEE.COM [GNK-6.4]
    38. To https://gitee.com/LCC11223/for_-linux_-code.git
    39. bd19d9b..463dd4c master -> master
    40. [HJM@hjmlcc 2022_11_8]$
    1. [HJM@hjmlcc 2022_11_8]$ ls
    2. lcc.c
    3. [HJM@hjmlcc 2022_11_8]$ touch LCC.c
    4. [HJM@hjmlcc 2022_11_8]$ echo "hjm" > LCC.c
    5. [HJM@hjmlcc 2022_11_8]$ ls
    6. lcc.c LCC.c
    7. [HJM@hjmlcc 2022_11_8]$ git add -u
    8. [HJM@hjmlcc 2022_11_8]$ git commit -m "测试指令git add -u"
    9. # On branch master //#分支机构主管
    10. # Untracked files: //#未跟踪的文件:
    11. # (use "git add ..." to include in what will be committed)
    12. //#(使用“git添加<文件> ...”包括在将要提交的内容中)
    13. #
    14. # LCC.c
    15. nothing added to commit but untracked files present (use "git add" to track)
    16. //提交时没有添加任何内容,但存在未跟踪的文件(使用“git add”进行跟踪)、
    17. [HJM@hjmlcc 2022_11_8]$ git push
    18. warning: push.default is unset; its implicit value is changing in
    19. Git 2.0 from 'matching' to 'simple'. To squelch this message
    20. and maintain the current behavior after the default changes, use:
    21. git config --global push.default matching
    22. To squelch this message and adopt the new behavior now, use:
    23. git config --global push.default simple
    24. See 'git help config' and search for 'push.default' for further information.
    25. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    26. 'current' instead of 'simple' if you sometimes use older versions of Git)
    27. Username for 'https://gitee.com': 13386323259
    28. Password for 'https://13386323259@gitee.com':
    29. Everything up-to-date //一切都是最新的
    30. [HJM@hjmlcc 2022_11_8]$


    三:

    1. [HJM@hjmlcc ~]$ ls
    2. Makefile process.c
    3. [HJM@hjmlcc ~]$ git clone https://gitee.com/LCC11223/for_-linux_-code.git
    4. Cloning into 'for_-linux_-code'...
    5. remote: Enumerating objects: 91, done.
    6. remote: Counting objects: 100% (91/91), done.
    7. remote: Compressing objects: 100% (75/75), done.
    8. remote: Total 91 (delta 28), reused 0 (delta 0), pack-reused 0
    9. Unpacking objects: 100% (91/91), done.
    10. [HJM@hjmlcc ~]$ ls
    11. for_-linux_-code Makefile process.c
    12. [HJM@hjmlcc ~]$ cd for_-linux_-code
    13. [HJM@hjmlcc for_-linux_-code]$ ls
    14. LICENSE README.en.md README.md
    15. [HJM@hjmlcc for_-linux_-code]$ mkdir 2022_11_8_1
    16. [HJM@hjmlcc for_-linux_-code]$ ls
    17. 2022_11_8_1 LICENSE README.en.md README.md
    18. [HJM@hjmlcc for_-linux_-code]$ cd 2022_11_8_1
    19. [HJM@hjmlcc 2022_11_8_1]$ ls
    20. [HJM@hjmlcc 2022_11_8_1]$ touch lcc.c hjm.c
    21. [HJM@hjmlcc 2022_11_8_1]$ echo "lcc" > lcc.c
    22. [HJM@hjmlcc 2022_11_8_1]$ echo "hjm" > hjm.c
    23. [HJM@hjmlcc 2022_11_8_1]$ cat lcc.c
    24. lcc
    25. [HJM@hjmlcc 2022_11_8_1]$ cat hjm.c
    26. hjm
    27. [HJM@hjmlcc 2022_11_8_1]$ git add .
    28. [HJM@hjmlcc 2022_11_8_1]$ git commit -m "测试指令git add ."
    29. [master b0fea76] 测试指令git add .
    30. 2 files changed, 2 insertions(+)
    31. create mode 100644 2022_11_8_1/hjm.c
    32. create mode 100644 2022_11_8_1/lcc.c
    33. [HJM@hjmlcc 2022_11_8_1]$ git push
    34. warning: push.default is unset; its implicit value is changing in
    35. Git 2.0 from 'matching' to 'simple'. To squelch this message
    36. and maintain the current behavior after the default changes, use:
    37. git config --global push.default matching
    38. To squelch this message and adopt the new behavior now, use:
    39. git config --global push.default simple
    40. See 'git help config' and search for 'push.default' for further information.
    41. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    42. 'current' instead of 'simple' if you sometimes use older versions of Git)
    43. Username for 'https://gitee.com': 13386323259
    44. Password for 'https://13386323259@gitee.com':
    45. Counting objects: 6, done.
    46. Delta compression using up to 2 threads.
    47. Compressing objects: 100% (3/3), done.
    48. Writing objects: 100% (5/5), 383 bytes | 0 bytes/s, done.
    49. Total 5 (delta 1), reused 0 (delta 0)
    50. remote: Powered by GITEE.COM [GNK-6.4]
    51. To https://gitee.com/LCC11223/for_-linux_-code.git
    52. ca6a9bd..b0fea76 master -> master
    53. [HJM@hjmlcc 2022_11_8_1]$

    1. [HJM@hjmlcc 2022_11_8_1]$ ls
    2. hjm.c lcc.c
    3. [HJM@hjmlcc 2022_11_8_1]$ cd ..
    4. [HJM@hjmlcc for_-linux_-code]$ ls
    5. 2022_11_8_1 LICENSE README.en.md README.md
    6. [HJM@hjmlcc for_-linux_-code]$ mkdir 2022_11_8_2
    7. [HJM@hjmlcc for_-linux_-code]$ ls
    8. 2022_11_8_1 2022_11_8_2 LICENSE README.en.md README.md
    9. [HJM@hjmlcc for_-linux_-code]$ cd 2022_11_8_2
    10. [HJM@hjmlcc 2022_11_8_2]$ ls
    11. [HJM@hjmlcc 2022_11_8_2]$ touch lh.c
    12. [HJM@hjmlcc 2022_11_8_2]$ echo "11223" > lh.c
    13. [HJM@hjmlcc 2022_11_8_2]$ ls
    14. lh.c
    15. [HJM@hjmlcc 2022_11_8_2]$ cd ..
    16. [HJM@hjmlcc for_-linux_-code]$ ls
    17. 2022_11_8_1 2022_11_8_2 LICENSE README.en.md README.md
    18. [HJM@hjmlcc for_-linux_-code]$ cd 2022_11_8_1
    19. [HJM@hjmlcc 2022_11_8_1]$ ls
    20. hjm.c lcc.c
    21. [HJM@hjmlcc 2022_11_8_1]$ git add -A :/
    22. [HJM@hjmlcc 2022_11_8_1]$ git commit -m "测试指令git add -A :/"
    23. [master dac8cbe] 测试指令git add -A :/
    24. 1 file changed, 1 insertion(+)
    25. create mode 100644 2022_11_8_2/lh.c
    26. [HJM@hjmlcc 2022_11_8_1]$ git push
    27. warning: push.default is unset; its implicit value is changing in
    28. Git 2.0 from 'matching' to 'simple'. To squelch this message
    29. and maintain the current behavior after the default changes, use:
    30. git config --global push.default matching
    31. To squelch this message and adopt the new behavior now, use:
    32. git config --global push.default simple
    33. See 'git help config' and search for 'push.default' for further information.
    34. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    35. 'current' instead of 'simple' if you sometimes use older versions of Git)
    36. Username for 'https://gitee.com': 13386323259
    37. Password for 'https://13386323259@gitee.com':
    38. Counting objects: 5, done.
    39. Delta compression using up to 2 threads.
    40. Compressing objects: 100% (2/2), done.
    41. Writing objects: 100% (4/4), 347 bytes | 0 bytes/s, done.
    42. Total 4 (delta 1), reused 0 (delta 0)
    43. remote: Powered by GITEE.COM [GNK-6.4]
    44. To https://gitee.com/LCC11223/for_-linux_-code.git
    45. b0fea76..dac8cbe master -> master
    46. [HJM@hjmlcc 2022_11_8_1]$

    1. [HJM@hjmlcc 2022_11_8_1]$ clear
    2. [HJM@hjmlcc 2022_11_8_1]$ pwd
    3. /home/HJM/for_-linux_-code/2022_11_8_1
    4. [HJM@hjmlcc 2022_11_8_1]$ ls
    5. hjm.c lcc.c
    6. [HJM@hjmlcc 2022_11_8_1]$ cat lcc.c
    7. lcc
    8. [HJM@hjmlcc 2022_11_8_1]$ echo "hjm" >> lcc.c //修改普通源文件lcc.c中的内容、
    9. [HJM@hjmlcc 2022_11_8_1]$ cat lcc.c
    10. lcc
    11. hjm
    12. [HJM@hjmlcc 2022_11_8_1]$ rm hjm.c //删除普通源文件hjm.c、
    13. [HJM@hjmlcc 2022_11_8_1]$ ls
    14. lcc.c
    15. [HJM@hjmlcc 2022_11_8_1]$ cat lcc.c
    16. lcc
    17. hjm
    18. [HJM@hjmlcc 2022_11_8_1]$ pwd
    19. /home/HJM/for_-linux_-code/2022_11_8_1
    20. [HJM@hjmlcc 2022_11_8_1]$ cd ..
    21. [HJM@hjmlcc for_-linux_-code]$ ls
    22. 2022_11_8_1 2022_11_8_2 LICENSE README.en.md README.md
    23. [HJM@hjmlcc for_-linux_-code]$ cd 2022_11_8_2
    24. [HJM@hjmlcc 2022_11_8_2]$ ls
    25. lh.c
    26. [HJM@hjmlcc 2022_11_8_2]$ touch lcc.c
    27. [HJM@hjmlcc 2022_11_8_2]$ echo "lcc" > lcc.c
    28. [HJM@hjmlcc 2022_11_8_2]$ cat lcc.c
    29. lcc
    30. [HJM@hjmlcc 2022_11_8_2]$ cd ..
    31. [HJM@hjmlcc for_-linux_-code]$ pwd
    32. /home/HJM/for_-linux_-code
    33. [HJM@hjmlcc for_-linux_-code]$ ls
    34. 2022_11_8_1 2022_11_8_2 LICENSE README.en.md README.md
    35. [HJM@hjmlcc for_-linux_-code]$ cd 2022_11_8_1
    36. [HJM@hjmlcc 2022_11_8_1]$ ls
    37. lcc.c
    38. [HJM@hjmlcc 2022_11_8_1]$ git add -A :/
    39. [HJM@hjmlcc 2022_11_8_1]$ git commit -m "测试指令git add -A :/"
    40. [master 53c6418] 测试指令git add -A :/
    41. 3 files changed, 2 insertions(+), 1 deletion(-)
    42. delete mode 100644 2022_11_8_1/hjm.c
    43. create mode 100644 2022_11_8_2/lcc.c
    44. [HJM@hjmlcc 2022_11_8_1]$ git push
    45. warning: push.default is unset; its implicit value is changing in
    46. Git 2.0 from 'matching' to 'simple'. To squelch this message
    47. and maintain the current behavior after the default changes, use:
    48. git config --global push.default matching
    49. To squelch this message and adopt the new behavior now, use:
    50. git config --global push.default simple
    51. See 'git help config' and search for 'push.default' for further information.
    52. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    53. 'current' instead of 'simple' if you sometimes use older versions of Git)
    54. Username for 'https://gitee.com': 13386323259
    55. Password for 'https://13386323259@gitee.com':
    56. Counting objects: 9, done.
    57. Delta compression using up to 2 threads.
    58. Compressing objects: 100% (3/3), done.
    59. Writing objects: 100% (5/5), 552 bytes | 0 bytes/s, done.
    60. Total 5 (delta 0), reused 0 (delta 0)
    61. remote: Powered by GITEE.COM [GNK-6.4]
    62. To https://gitee.com/LCC11223/for_-linux_-code.git
    63. b0fea76..dac8cbe master -> master
    64. [HJM@hjmlcc 2022_11_8_1]$


    四:


    远端的 Git 仓库如何开源:


    注意:

            不要在 Gitee 上新建远端的 Git 仓库之后立马开源,最好要等到在该远端的 Git 仓库中提交一些内容之后,再进行开源,实在不行改一下 Readme 、


    远端的 Git 仓库如何删除:


  • 相关阅读:
    深入了解Spring中的JSR 303验证和拦截器
    Zookeeper客户端Curator5.1节点事件监听CuratorCache用法
    Lambda求和函数在excel上的应用
    WinForm,可能是Windows上手最快的图形框架了
    利用反射对修饰符为final的成员变量进行修改
    C#10新特性-全局和隐式usings
    11_Shell脚本-简单实例
    电脑硬盘就一个c盘怎么分区,新电脑买回来只有一个c盘怎么分区
    手机蓝牙调试助手,设置红绿灯时间,本次设置红灯28s,绿灯24s,其中红绿灯时间可以任意设置,最大值四位数之内,是智慧城市交通灯联网Ai调控前期探索。
    从开始学习算法到学习计算机视觉
  • 原文地址:https://blog.csdn.net/lcc11223/article/details/127733383