git使用笔记

git安装

PowerShell | git log 中文乱码问题解决

1、在PowerShell中输入以下命令

1.  git config --global core.quotepath false    
2.  git config --global gui.encoding utf-8    
3.  git config --global i18n.commit.encoding utf-8
4.  git config --global i18n.logoutputencoding utf-8
5.  $env:LESSCHARSET='utf-8'    

2、在系统环境变量中添加变量LESSCHARSET为utf-8.

参考链接:PowerShell | git log 中文乱码问题解决

git使用

Git - 暂存区及撤销修改

1. 暂存区

每个 Git 仓库中,都有一个隐藏目录 .git 用于存放 Git 仓库的相关信息,包括暂存区(称为 stage)、自动创建的 master 分支以及指向 master 分支的 HEAD 指针。

每次提交文件时:

  • git add 添加文件到暂存区。
  • git commit 提交更改,把暂存区的所有内容一次性全部提交到当前分支,清空暂存区。

2. 撤销修改

因为暂存区的存在,撤销修改分为几种情况(通过 git status 查看仓库状态时会提示相关撤销修改的命令):

  • 修改后,文件没有放入暂存区(即文件一直在工作区):用 git checkout -- 文件名 撤销工作区的改动(回到跟版本库一样的状态,即回到最近一次 git commit时的状态,所有改动全部清除)
  • 修改后,文件放入暂存区,且文件没有再次修改(即文件已经进入暂存区):分两步:先用 git reset <文件名> 撤销 git add 操作(此时更改仍留在工作区),再执行 git checkout -- 文件名 清除工作区的改动
  • 修改后,文件放入暂存区,且文件再次修改:分三步:先用 git checkout -- 文件名 撤销工作区的改动,再用 git reset <文件名> 撤销 git add 操作(此时更改仍留在工作区),最后执行 git checkout -- 文件名 清除工作区的改动

通过 git checkout -- 文件名 命令可以撤销文件在工作区的修改。
通过 git reset 文件名 命令可以撤销指定文件的 git add 操作,即这个文件在暂存区的修改。
通过 git reset 命令可以撤销之前的所有 git add 操作,即在暂存区的修改。

git checkout -- 文件名 命令中的 -- 表示命令行在 -- 之后没有更多的选项。这样的好处是, 如果碰巧有一个分支与文件名重名,仍然可以恢复该文件,而不是切换到同名的分支。

参考链接:Git - 暂存区及撤销修改

vscode-git中的U,M和D文件标记含义

20190902211505.png

  • M modified
    你已经在github中添加过该文件,然后你对这个文件进行了修改,就会文件后标记M
  • U untracked
    你在本地新建了这个文件,还未提交到github上,就会标记U
  • D delete
    你删除了这个文件,vscode-git会记录下这个状态
  • 6,U
    表示有6个错误且untracked

参考文章:vscode-git中的U,M和D文件标记含义

git 同步

gitee没有权限拉取解决步骤

文件位置

~/.ssh/id_rsa.pub

创建密钥

  1. 问题分析:由于没有设置Gitee的SSH公钥
  2. 解决办法:
  3. 生成SSH公钥 ssh-keygen -t rsa -C "[email protected]" 这里填写gitee注册邮箱
  4. 找到对应的目录 这个文件id_rsa.pub, 使用文本编辑器打开, 复制
  5. 找到gitee进行配置, 设置-> 安全设置-> SSH公钥 把复制的东西粘贴进去
  6. 这里添加之后,在git push 的时候,发现还是会 报原来的错误
  7. 能是你的这台电脑以前使用过git,所以保存的账号和密码是其他人的,所以需要进行修改账号和密码:
  8. 进入控制面板
  9. 选择用户账户
  10. 选择管理你的凭据
  11. 选择Windows凭据
  12. 选择git保存的用户信息
  13. 选择编辑或者进行删除操作
  14. 完成

添加远程仓库

git remote add origin  [email protected]:xxxxxx/ssssss

Git pull 强制拉取并覆盖本地代码

git fetch --all
git reset --hard origin/master
git pull

你可能感兴趣的:(git)