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,因为版本回退而去掉的修改又回来了
  • 相关阅读:
    thinkphp5 tp5 命名空间 报错 Namespace declaration statement has to be the very first statement in the script
    开启 php 错误 提示 php-fpm 重启 nginx 500错误 解决办法 wdlinux lnmp 一键包 php脚本无法解析执行
    js 设置 cookie 定时 弹出层 提示层 下次访问 不再显示 弹窗 getCookie setCookie setTimeout
    php 二维数组 转字符串 implode 方便 mysql in 查询
    nginx 重启 ps -ef|grep nginx kill -HUP 主进程号
    jquery bootstrap help-block input 表单 提示 帮助 信息
    jquery 倒计时 60秒 短信 验证码 js ajax 获取
    jQuery如何获取同一个类标签的所有的值 遍历
    linux下C语言文件操作相关函数
    gcc,gdb用法
  • 原文地址:https://www.cnblogs.com/cyx-b/p/13434258.html
Copyright © 2011-2022 走看看