前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习笔记:03_如何使用Git命令把文件提交到版本库

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

作者头像
全栈程序员站长
发布2022-06-30 10:43:51
4880
发布2022-06-30 10:43:51
举报
文章被收录于专栏:全栈程序员必看

Git常见的命令

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

.git目录

代码语言:javascript
复制
mkdir myGit #创建myGit文件
cd myGit #进入myGit
git init # 初始化git
代码语言:javascript
复制
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!)

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

代码语言:javascript
复制
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)
代码语言:javascript
复制
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 命令

代码语言:javascript
复制
$ 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 ‘注释’

代码语言:javascript
复制
$ 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
代码语言:javascript
复制
$ git config
usage: git config [<options>]

Config file location
    --global              use global config file
    --system              use system config file
    --local               use repository config file
代码语言:javascript
复制
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)
$
代码语言:javascript
复制
$ 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)
$
代码语言:javascript
复制
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操作

代码语言:javascript
复制
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)
$
代码语言:javascript
复制
$ 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)

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Git常见的命令
    • .git目录
      • 把修改的文件添加到版本库
        • git config –local操作
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档