git重要知识点 远程追踪 版本回退

git

参考网址

Git - Reference (git-scm.com)

Git命令行基本操作 - Tocy - 博客园 (cnblogs.com)

img

git仓库结构及重要概念

git结构:工作区、缓存区、本地仓库、日志区(日志区、操作日志区)、Head指针(默认指向最后一次提交)、分支

git的本地仓库通过commit快照的形式存储工作区的数据,也就是会完整永久存储每一次commit,可以通过“git log”查询每次commit的id,浏览日志完毕,按键盘q退出回到终端,“git log -n20 --oneline" 可以简洁方便的查看,只看前20

一、git本地管理

1.新建/克隆本地仓库

  • 创建仓库

git init 是使用 Git 的第一个命令。

在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。

git init

该命令执行完后会在当前目录生成一个 .git 目录。刚刚创建出来的git

  • 克隆仓库

如果需要克隆远程仓库,可以使用git clone,比如:

git clone [repository url]

2.查看本地仓库状态

作用:查看本地工作区、本地git仓库、临时存储区域三者之间的文件差异

git-status - Show the working tree status

git status

3.提交文件到本地git

作用:add 将文件加入临时区,commit提交到本地git仓库

git add *
git commit -m [message]

4. .gitignore 文件配置

作用:可以用于忽略一些不需要git管理的大型文件

/uni_modules
/unpackage/dist

可以使用.gitkeep文件来维持没有内容的文件夹

5.查看本地分支

git branch

刚初始化的git仓库不会创建本地分支,需要一次commit过后才会有本地分支master

二、git远程管理

1.查看仓库远程链接

git remote

2.添加本地远程链接缩写

git remote add [shortname] [url]

3.上传文件到云平台

表示把当前的本地分支git库提交给remote 路径上的branchname分支

git push [remote/shortname] [branchname]

第一次提交需要: -u

git push -u origin tabbar

4.下拉文件到工作区

git pull <remote> <branch>

无历史关联拉取:用于第一次拉取

git pull orginal master --allow-unrelated-histories
git clone <url>

## 建议使用git clone ,最好不要新建仓库强拉

三、git ssh

生成/添加SSH公钥 - Gitee.com

作用:不用密码就可以拉推

步骤:需要获得ssh公钥,并将其复制到Gitee 和 GitHub 上

四、git分支

1.查看本地分支

git branch

2.创建、删除分支

git branch [newname]
git branch -d [newname]

3.切换分支

 git checkout [branchname]

4.合并分支

merge :合并被合并分支到当前分支上

git merge [被合并分支]

五、问题及解决方案

git warning: LF will be replaced by CRLF in package.json解决办法

在修改了package.json文件之后,使用git add . 提交代码出现以下报错:

warning:LF will be replaced by CRLF in package.json.
The file will have its original line endings in your working directory

查询了一下资料,发现:

windows中的换行符为 CRLF,而在Linux下的换行符为LF,所以在执行git add . 时,会出现warning。

解决办法:

git config core.autocrlf false  //禁用自动转换 

六、git常见遇到问题

1.git master 没有对应的上游分支

关键理解git branch的追踪关系

2.git pull错了如何恢复

3.git push错了如何恢复

4.远程仓库拒绝接受

原因:远程仓库认为它有比你更高版本的更新,需要你同步后才准上传

措施:

1.强烈建议新建仓库或先commit备份下或新建分支或手动更改

2.或者拉去更新后的版本,然后再次推送,这样做可能导致你无法接受该仓库对你代码的更改的事情发生,可以先在本地仓库留存记录,

七、git追踪关系

1.查看追踪关系

 $ git branch -vv

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

绿色master 本地分支 后面的数字是本地仓库的id缩写,也就是你最后一次commit的id ;蓝色是远程url缩写/分支 最后v3.0是commit时写的那段话

2.建立追踪关系

2.1 手动建立追踪关系
 $ git branch --set-upstream-to=<远程主机名>/<远程分支名> <本地分支名>

2.2 push时建立追踪关系
 $ git push -u <远程主机名> <远程分支名>

加上-u参数,这样push时,本地指定分支就和远程主机的同名分支建立追踪关系。

2.3 新建分支时建立跟踪关系
 $ git checkout -b <本地分支名> <远程主机名>/<远程分支名>

新分支指针指向 <远程主机名>/<远程分支名> 所指的位置。具体位置可用 git log --oneline --graph 查看。

2.4pull是建立追踪关系

git pull <远程链接缩写> <远程分支名> --allow-unrelated-histories

3.注意

直接git pull建立不了追踪关系,它不知道往哪儿推,往往就是它报错

八、idea应用git

1.设置板块

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.vsc板块

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在没有绑定git时,git的位置是vsc,选择新建本地git仓库

3.插件板块

搜索gitee 可以添加该插件,绑定gitee账户,就不用输入密码,我用的ssh也可以不用,就无需插件

4.git板块

九、项目开发流程

1.从github等以后仓库git clone项目

  • 寻找一个空文件夹,打开powershell/cmd 【推荐powershell】

  • 执行clone命令

    git clone <远程URL>
    
  • 使用某IDE打开该文件夹

2.自己新建项目或本地项目,然后再建立git

  • IDE新建项目或打开老项目

  • github或gitee创建仓库,并初始化至少一个分支master

  • 本地项目的终端或操作初始化git

    git init
    
  • 提交到本地git,并由此创建branch master

    git add *  【注意.gitignore文件】
    git commit -m v X.X
    
  • 提交远程

    • 如果新建的github仓库不为空,需要首先强拉仓库,如下

      git pull <远程主机名> <远程分支名> --allow-unrelated-histories 【强制建立联系分支之间联系】
      git push -u <远程主机名> <远程分支名> 【一般需要第一次推才能建立联系】
      
    • 如果新建仓库为空,直接

      git push -u <远程主机名> <远程分支名>
      

十、git删除本地缓存区

可以删除add到缓存的内容,比较安全

  • 删除所有缓存【强制加 -f】

    git rm -r --cached *
    
  • 删除某个文件缓存

    git rm -r --cached <文件名>
    

十一、git版本回退和恢复【高危操作,一定要先提交先提交】

  • 把工作区和缓存区回退到指定版本commit id对应
    [通过git log -n10 --oneline]查询

    git log -n10 --oneline
    

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

 git reset --hard <commit id> 【黄色就是】
  • 恢复commit
 git reflog -n10 --oneline

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

git reset --hard <commit id> 
git log 与 git reflog 区别:git log 只能查看head指针指向之前的提交,但git reflog 可以查看所有的提交及变更来恢复
  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值