学习笔记:03_如何使用Git命令把文件提交到版本库

学习笔记:03_如何使用Git命令把文件提交到版本库

Git常见的命令

  • 获取版本库
    • git init 初始化本地空的版本库
    • git clone
  • 版本管理
    • git add 当前以修改的文件拉入git的暂存区中
    • git commit
    • gi rm
  • 查看信息
    • git help
    • git log
    • git diff 比较差别
  • 远程协助
    • git pull
    • git push
git 文件三种状态:
     以修改  
     以暂存  
     已提交
     
master 主分支  在mater分支中发布项目 (master分支是默认的分支)    

.git目录

mkdir myGit #创建myGit文件
cd myGit #进入myGit
git init # 初始化git
Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ cd .git

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ ll
total 7
-rw-r--r-- 1 Administrator 197121 130 八月   20 21:09 config
-rw-r--r-- 1 Administrator 197121  73 八月   20 21:09 description
-rw-r--r-- 1 Administrator 197121  23 八月   20 21:09 HEAD
drwxr-xr-x 1 Administrator 197121   0 八月   20 21:09 hooks/
drwxr-xr-x 1 Administrator 197121   0 八月   20 21:09 info/
drwxr-xr-x 1 Administrator 197121   0 八月   20 21:09 objects/
drwxr-xr-x 1 Administrator 197121   0 八月   20 21:09 refs/

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)

把修改的文件添加到版本库


Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ touch test.txt

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ ll
total 0
-rw-r--r-- 1 Administrator 197121 0 八月   20 21:35 test.txt

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ vim test.txt

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ cat test.txt
i love you_01

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test.txt

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

Administrator@kevin MINGW32 ~/Desktop/myGit (master)

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git add test.txt
warning: LF will be replaced by CRLF in test.txt.
The file will have its original line endings in your working directory

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test.txt


Administrator@kevin MINGW32 ~/Desktop/myGit (master)


git文件从暂存区回退到以修改状态:git rm 命令

$ git rm test.txt
error: the following file has changes staged in the index:
    test.txt
(use --cached to keep the file, or -f to force removal)

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test.txt


Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$

git commit必须写注释否则:
格式: git commit -m ‘注释’

$ git commit

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'Administrator@kevin.(none)')

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git commit -m '测试'

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'Administrator@kevin.(none)')

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$

对于user.name 与user.email来说有三个地方可以设置

  • /etc/.gitconfig 针对某个整个操作系统
  • ~/.gitconfig 针对特定的用户。 git config –global
  • 针对特定的项目 .git/config文件中 git config –local
$ git config
usage: git config [<options>]

Config file location
    --global              use global config file
    --system              use system config file
    --local               use repository config file


Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git config --global user.name 'zx'

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git config --global user.email '892295771@qq.com'

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$

$ git commit -m '测试'
[master (root-commit) ba82baf] 测试
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git status
On branch master
nothing to commit, working tree clean

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git config
usage: git config [<options>]

Config file location
    --global              use global config file
    --system              use system config file
    --local               use repository config file
    --worktree            use per-worktree config file
    -f, --file <file>     use given config file
    --blob <blob-id>      read config from given blob object

Action
    --get                 get value: name [value-regex]
    --get-all             get all values: key [value-regex]
    --get-regexp          get values for regexp: name-regex [value-regex]
    --get-urlmatch        get value specific for the URL: section[.var] URL
    --replace-all         replace all matching variables: name value [value_regex]
    --add                 add a new variable: name value
    --unset               remove a variable: name [value-regex]
    --unset-all           remove all matches: name [value-regex]
    --rename-section      rename section: old-name new-name
    --remove-section      remove a section: name
    -l, --list            list all
    -e, --edit            open an editor
    --get-color           find the color configured: slot [default]
    --get-colorbool       find the color setting: slot [stdout-is-tty]

Type
    -t, --type <>         value is given this type
    --bool                value is "true" or "false"
    --int                 value is decimal number
    --bool-or-int         value is --bool or --int
    --path                value is a path (file or directory name)
    --expiry-date         value is an expiry date

Other
    -z, --null            terminate values with NUL byte
    --name-only           show variable names only
    --includes            respect include directives on lookup
    --show-origin         show origin of config (file, standard input, blob, command line)
    --default <value>     with --get, use default value when missing entry


Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$

git config –local操作

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ ll
total 9
-rw-r--r-- 1 Administrator 197121   7 八月   20 22:06 COMMIT_EDITMSG
-rw-r--r-- 1 Administrator 197121 148 八月   20 22:10 config
-rw-r--r-- 1 Administrator 197121  73 八月   20 21:09 description
-rw-r--r-- 1 Administrator 197121  23 八月   20 21:09 HEAD
drwxr-xr-x 1 Administrator 197121   0 八月   20 21:09 hooks/
-rw-r--r-- 1 Administrator 197121 137 八月   20 21:45 index
drwxr-xr-x 1 Administrator 197121   0 八月   20 21:09 info/
drwxr-xr-x 1 Administrator 197121   0 八月   20 22:06 logs/
drwxr-xr-x 1 Administrator 197121   0 八月   20 22:06 objects/
drwxr-xr-x 1 Administrator 197121   0 八月   20 21:09 refs/

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ cat config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[user]
        name = zz

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config --local user.name 'zx'

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config --local user.email 'xxx@qq.com'

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ cat config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[user]
        name = zx
        email = xxx@qq.com

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config -l
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=d:/Program Files/Git/mingw32/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge --skip -- %f
filter.lfs.process=git-lfs filter-process --skip
filter.lfs.required=true
pack.packsizelimit=2g
add.interactive.usebuiltin=true
user.name=zx
user.email=892295771@qq.com
core.repositoryformatversion=0
core.filemode=false
core.bare=false

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config user.name
zx

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config user.email
xxx@qq.com

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config --local user.name 'zdd'

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config --local --unset user.name

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ cat config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[user]
        email = xxx@qq.com

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config --local user.name 'zx'

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config user.name
zx

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ git config user.email
xxx@qq.com

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)
$ cat config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[user]
        email = xxx@qq.com
        name = zx

Administrator@kevin MINGW32 ~/Desktop/myGit/.git (GIT_DIR!)

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ cat ~/.gitconfig
[user]
        name = zx
        email = 892295771@qq.com

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$
$ echo 'i love you to'>test.txt

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ cat test.txt
i love you to

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test.txt

no changes added to commit (use "git add" and/or "git commit -a")

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git add test.txt
warning: LF will be replaced by CRLF in test.txt.
The file will have its original line endings in your working directory

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git commit -m '再次修改为 iloveyou to'
[master 9b79eb7] 再次修改为 iloveyou to
 1 file changed, 1 insertion(+), 1 deletion(-)

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ cat test.txt
i love you to

Administrator@kevin MINGW32 ~/Desktop/myGit (master)
$ git log
commit 9b79eb743639cfd7b6e62966d6012403ce3b3fd0 (HEAD -> master)
Author: zx <xxx@qq.com>
Date:   Tue Aug 20 22:24:52 2019 +0800

    再次修改为 iloveyou to

commit ba82bafa862d0cccdd105e725f2e17f711a321eb
Author: zx <892295771@qq.com>
Date:   Tue Aug 20 22:06:58 2019 +0800

    测试

Administrator@kevin MINGW32 ~/Desktop/myGit (master)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100780.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • QQ机器人制作教程,超详细「建议收藏」

    QQ机器人制作教程,超详细「建议收藏」目录前期准备1、机器人框架的下载和配置2、python的配置和安装具体实现1、发送信息2、获取群成员列表3、接收上报的事件4、实现简单的自动回复下一篇文章介绍更多功能前期准备1、机器人框架的下载和配置首先需要一个qq机器人框架,我使用的是基于mirai以及MiraiGo开发的go-cqhttp(里面有开发文档)。框架下载地址Windows下32位文件为go-cqhttp-v*-windows-386.zipWindows下64位文件为go-cqhttp-v*-windows-amd6

  • 安卓7.1精简版下载_asm字节码

    安卓7.1精简版下载_asm字节码ASM 7.1 发布

  • webstorm 19 激活码【2021最新】

    (webstorm 19 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • 本地Linux配置ip地址的方法

    本地Linux配置ip地址的方法登录后使用ifconfig命令查询IP地址如果没有ip显示则接着使用ifconfigeth0ip地址来主动给虚拟机配置ip要注意这里是eth0而不是ehto

  • Android开发入门书籍推荐

    Android开发入门书籍推荐http://liangruijun.blog.51cto.com/3061169/623548/Android开发入门书籍推荐Android编程入门教程andbookandbook是我看到的最简单但最好的Android程序开发入门书籍,内容仅有60多页,图文并茂,如果你从来没有接触过Android开发,也完全可以通过阅读此书了解程序开发过程,甚至对APK程

  • 精灵图 详解

    精灵图 详解精灵图技术why?1.减少请求次数,提高界面加载速度what?图片拼合技术,它就是把多张小图合成一张大图,利用 背景定位属性background-position:xpxypx实现显示大图当中的某一个小图how?1.确定显示小图片的那个盒子的宽高2.以背景的方式插入精灵图background-image:url();3.移动图片的定位位置background-positi…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号