学习笔记: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)


相关推荐

  • PHP一句话木马使用技巧

    PHP一句话木马使用技巧近来发现好多网站有安全狗,会拦截菜刀和蚁剑,因此总结下通过浏览器直接调用一句话木马的姿势。PHP一句话:<?php@eval($_POST[‘shy’]);?>firefox浏览器:hackbar命令提示符:curl首先上传一句话木马到网站目录,可以是虚拟机也可以是VPS,我这里用的是阿里云我自己搭建的网站,由于只是简单的一句话木马,因次一上车就收到了安全云的短信…

  • 浅析@ResponseBody注解作用和原理

    浅析@ResponseBody注解作用和原理    @ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。    假如是字符串则直接将字符串写到客户端,假如是一个对象,此时会将对象转化为json串然后写到客户…

  • 微信小程序跳转传值(微信怎样打开小程序)

    前情:首先我们有这么一种需求,就是我在一个列表中点击了某个item,跳转到详情界面,那么我就需要把item的实体数据从列表页面传递到详情页面,那么我们来看看微信小程序给我们提供的API:先看api:这里大家可以清楚看到api中说到的如何传递参数,其实它这里指的参数仅仅是一些普通的数据类型具体分析:这里我们要传递的实体是object类型,那么我们需要先把实体转…

  • asp.net mvc 多语言_ASPNET程序开发招聘

    asp.net mvc 多语言_ASPNET程序开发招聘ASPNETMVC多语言方案前言:好多年没写文章了,工作很忙,天天加班,每天都相信不用多久,就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰,想想还有点小激动~~~~直到后来发生了邮箱事件,我竟然忘了给邮箱密码赋值,导致遇到“邮箱不可用。服务器响应为:5.7.1Unabletorelayfor”的问题,网上一查后,让Boss去设置IIS里的SMTP。结果Boss力证不用…

  • Latex:入门教程

    Latex:入门教程http://blog.csdn.net/pipisorry/article/details/54571521总的来说,LaTex是一套排版系统,与word那种所见即所得对排版方式不太,用LaTex排版更像是写程序一样,将想要的排版效果用指令写出来,再通过LaTex编译成文档。简单来说,你只要按照要求撰写tex文件,就能够通过LaTex生成排版好的pdf文件。有些人可能听到写程序就头大了,其实使用…

  • python激活码2021【2021最新】

    (python激活码2021)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlMLZPB5EL5Q-eyJsaWN…

发表回复

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

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