zoukankan      html  css  js  c++  java
  • Git本地仓库基本操作

    设置姓名和邮箱

    设置使用Git时的姓名和邮箱地址。名字须用英文输入
    git config --global user.name "chuyaoxin"
    git config --global user.email "yaoxinchu@126.com"

    命令运行的结果是在“C:Users用户名”路径下,产生一个.gitconfig文件,可以用记事本打开。

    想更改这些信息时,可以直接编辑这个设置文件。这里设置的姓名和邮箱地址会用在Git的提交日志中。由于在GitHub上公开仓库时,这里的姓名和邮箱地址也会随着提交日志一同被公开,所以请不要使用不便公开的隐私信息。

    创建仓库

    创建一个新文件夹,比如“TestForGit”
    然后右键点击这个文件夹,选择Git Bash Here
    打开后,输入git init完成代码仓库的建立

    输入ls -al可以看到目录下有个.git的文件夹,但这个目录默认是隐藏的。

    提交本地代码

    先用add命令把要提交的内容都加进来,然后commit才是真的去执行提交操作。
    第一步,用命令git add告诉Git,把文件添加到仓库
    git add readme.txt
    第二步,用命令git commit告诉Git,把文件提交到仓库
    git commit -m "write a readme file"

    .gitignore

    .gitignore是Git的忽略配置文件,放在项目根目录下就行,这样在提交代码时就不会跟踪在.gitignore配置文件列举的文件。另外,.gitignore文件本身需要被git跟踪管理,不能被忽略。

    git add

    用途:可以用来跟踪新文件,或者添加已被修改的跟踪的文件到缓存区,或者把合并的冲突文件标记为已解决
    git add的原意是更新当前工作目录树修改的内容到索引中(也就是缓存中去)
    主要针对两种文件:(1)版本库没有跟踪的文件(2)版本库已经跟踪,但是修改了的文件
    另外git add会自动忽略.gitignore文件所忽略的文件。

    • git add .
      将文件的修改、文件的新建(注意!不包括被删除的文件),添加到暂存区
      git add .会把所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤
    • git add *
      git add *会忽略.gitignore把任何文件都加入暂存区
    • git add -u
      将文件的修改、文件的删除(注意!仅监控被add的文件,不包括新文件),添加到暂存区,u表示update
    • git add -A
      将文件的修改,文件的删除,文件的新建(相当于add .与add -u的合集),添加到暂存区,A表示all
    • 其他
      可以使用git add -h命令来查看
    $ git add -h
    usage: git add [<options>] [--] <pathspec>...
        -n, --dry-run         dry run
        -v, --verbose         be verbose
        -i, --interactive     interactive picking
        -p, --patch           select hunks interactively
        -e, --edit            edit current diff and apply
        -f, --force           allow adding otherwise ignored files
        -u, --update          update tracked files
        --renormalize         renormalize EOL of tracked files (implies -u)
        -N, --intent-to-add   record only the fact that the path will be added later
        -A, --all             add changes from all tracked and untracked files
        --ignore-removal      ignore paths removed in the working tree (same as --no-all)
        --refresh             don't add, only refresh the index
        --ignore-errors       just skip files which cannot be added because of errors
        --ignore-missing      check if - even missing - files are ignored in dry run
        --chmod (+|-)x        override the executable bit of the listed files
        --pathspec-from-file <file>
                              read pathspec from file
        --pathspec-file-nul   with --pathspec-from-file, pathspec elements are separated with NUL character
    

    git commit

    • git commit -m "write a readme file"

      可以在使用了多次git add之后再使用git commit来提交。
      在git commit命令中,-m后面输入的是本次提交的说明,可以输入任意内容,但最好是有意义的,这样就能从历史记录里方便地找到改动记录。
      执行成功后,从图中可以看出,一个文件被改动,插入了6行内容。

    git status

    • git status
      可以使用git status命令查看是否还有文件未提交

      上图说明当前文件都已正常提交。
      如果我对上传的文件进行修改,但是却不提交会如何?

      会报出如上所示的错误!modified: readme.txt no changes added to commit
      字面意思:readme.txt被修改,提交没有变化

    git diff

    • git diff readme.txt
      git status可以让我们知道有没有正常提交,比如上面那个例子,但如果要查看文件到底修改了什么内容,可以使用git diff 文件名命令

      这条命令将我对这个文件的修改记录显示了出来

    查看提交记录

    • git log
      使用git log即可查看历史提交信息

      从这张图也可以看出之前git commit -m "write a readme file"中,-m部分的作用,这个和编程时写注释是一样的,可以不写,但是写的话方便以后的工作。
      还有要注意的地方是输出的结果,
      显然我这是提交了两次,以第一次的结果为例,

    commit 418ee0fc27d78a71f5869451b5a1599cc028b0ca (HEAD -> master)
    Author: chuyaoxin yaoxinchu@126.com
    Date: Tue Aug 4 19:48:59 2020 +0800
    write a readme file

    对应的含义分别是

    此次提交对应的版本号
    提交人:姓名 邮箱
    提交的时间
    提交版本修改的内容:就是我们git commit -m “xxx”里的xxx

    撤销未提交的修改

    如果对文件进行了错误的修改,且已经Ctrl+S保存,但还没有提交,想要撤销之前的修改可以使用checkout命令

    • 不仅未提交,而且没有add
      如果是这种情况,只需要一句git checkout 修改的文件名即可
      例如,git checkout readme.txt

      此时,再打开readme.txt,我对此文件的第二次修改被取消掉了
    • 已经add,但还没有提交
      如果我们已经add了的话,那么直接checkout是没任何作用的,我们要先取消添加才可以撤回提交
      git reset HEAD readme.txt
      git checkout readme.txt

    版本回退

    • git reset
      如果我们已经提交,但想退回到之前的版本,可以使用git reset命令
      比如我先在readme.txt中添加了一行,然后git add readme.txtgit commit -m "add the third step",添加并提交到仓库
      完成之后,使用git log检查提交记录。

      PS:通过这张图也能看出,最新的版本号显示在最上方
    • git reset --hard HEAD
      在git中,HEAD表示当前版本,HEAD表示上一个版本,HEAD^表示上上个版本
      退回到上一个版本需要依次输入以下指令
      git reset --hard HEAD
      git reset --hard HEAD^
      执行结果如下图所示:

      再输入git log查看,此时的版本号已经发生了变化,最新修改的那个版本号没有显示出来了
    • git reset --hard 版本号
      这条命令可以让我们将当前版本更改为存在过的任意一个版本
      同时仔细观察这张图,

      可以很容易的猜到,其实版本号只要输入前七位就可以了
      所以我们之前的回退指令可以用这条来替代,
      git reset --hard 418ee0f
    • git reflog
      如果你版本回退之后发现,还是最新的那个版本好一点,但此时通过git log已经找不到那个版本号了,
      可以使用git reflog

      显然,版本回退之前的最新版本号为14a5f92
      然后使用git reset --hard 14a5f92
      打开readme.txt,因为版本回退而去掉的修改又回来了
  • 相关阅读:
    java入门 学习日志三 (面向对象1)
    java入门 学习日志二
    第八届蓝桥杯 b组试题解析
    java入门 学习日志一
    第九届蓝桥杯 b组 解析
    第九届蓝桥杯 b组 明码
    第十届蓝桥杯 b组
    包子凑数 、买不到的数目
    基础背包问题
    斐波那契数列第n项
  • 原文地址:https://www.cnblogs.com/cyx-b/p/13434258.html
Copyright © 2011-2022 走看看