美文网首页
GIT学习与实战记录

GIT学习与实战记录

作者: attentionYSF | 来源:发表于2019-12-21 20:54 被阅读0次
创建版本库repository
mkdir f:/gitlearn
cd f:/gitlearn
git init
更新(新增、修改、删除)文件到git仓库
1 git add <file>  #如果有多个文件,重复敲多行代码
2 git commit -m "此次提交的说明"  #提交

添加当前目录下的所有文件夹及文件 git add .(后面为“.”)

添加整个文件夹  git add directoryname/

删除的另一种写法:

1 如果非git删除(手动、rm file),使用git checkout -- file.txt即可恢复文件,因为版本库还存在文件
2 如果使用git rm file.txt,且未执行git commit(此时,文件还在暂存区),想要恢复文件,先执行 git reset HEAD file.txt,再执行git checkout -- file.txt,即可恢复文件
3 删除版本库的文件,使用git rm file.txt,再执行git commit
查看当前git仓库状态
git status #列出需要更新的文件
git diff readme.txt #并显示更改的内容
git log --pretty=oneline #查看日志
版本回退
git reset --hard HEAD^ #会退到上一个版本,^的个数表示上上...上个版本,可以写成HEAD~100,标识退回到前100个版本

git reset --hard commit_id #根据版本id,让当前工作空间回退到某一个指定的版本,id可以不用写全,git会自动检索,也有可能检索到多个版本,就不行了

总结:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
工作区与暂存区
工作区与暂存区.jpg
撤销修改

错误使用git add后,直接 git reset,撤销所有添加文件

  • 文件修改后,未使用git add命令,不在暂存区
git checkout -- readme.txt
可以将修改内容撤销,与版本库最新版本代码一致
  • 文件修改后,执行了git add命令,已存在于暂存区
两步执行
git reset HEAD readme.txt    #既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
git checkout -- readme.txt     #把readme.txt文件在工作区的修改全部撤销
远程仓库,秘钥生成配置

git本地仓库,可以是多台机器,把每台机器生成的公钥添加到github SHH keys中,这样本机就可以通过私钥访问github仓库

本机生成公钥和私钥的命令:
打开git bash,在用户主目录下执行 $ ssh-keygen -t rsa -C "youremail@example.com",一路回车键使用默认值,即可生成.shh目录,该目录下有两个文件id_rsa和id_rsa.pub,分别为私钥和公钥,将公钥添加到github SSH keys中即可
本机生成私钥公钥.jpg
github公钥添加成功示意图.jpg
添加远程仓库
1 先在github上建立一个空库
2 使用命令git remote add origin git@github.com:chnqi/gitlearn.git;

总结:
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
方法二:第一种有时一直报错 ,用此种方式
1 在github上建立空库
2 git clone git@github.com:chnqi/gitCloneTest.git
3 进入下载的目录,执行git init
4 因为远程clone下来的,已经有了关联关系,可以不执行git remot add origin git@github.com:chnqi/gitCloneTest.git
5 git push -u origin master
从远程仓库克隆
git clone git@github.com:chnqi/gitCloneTest.git
git分支

速度远快于SVN,使用的是指针指向分支的方式
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险


分支概念图解.png
Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

相关文章

  • GIT学习与实战记录

    创建版本库repository 更新(新增、修改、删除)文件到git仓库 删除的另一种写法: 查看当前git仓库状...

  • Git 的使用

    前言 本文是对廖雪峰Git教程的一个学习与记录,方便自己以后查看。git原理:git 的原理是记录文件修改操作,对...

  • GIT实战

    git实战 git与svn的区别 git核心命令使用 git底层实现原理剖析 基于git通信协议搭建git私服 基...

  • git 整理笔记

    git 学习廖雪峰的Git教程 git中文手册、比较适合新手视频教程:Git零基础实战视频教程(共49课时)git...

  • Git本地相关操作(一)

    作为Git初学者,Git对笔者说比较陌生,故此通过记录学习Git详细过程,与大家进行分享。由于是第一次写,Git也...

  • Git重要命令回顾

    摘要 最近正在重新学习Git版本控制系统,以前对Git的了解不太深入,这次基于对张龙老师的Git实战视频课程的学习...

  • Git 学习记录

    Git 学习记录 设置Git的user name和email:git config --global user.n...

  • java8-Optional的实战应用

    Optional的学习与实战 整片文章大部分内容来自java8实战这本书,我在这里也是将自己的学习过程记录下来,并...

  • Git ---- 《GitHub 入门与实践》笔记

    前言 记录自己阅读《GitHub 入门与实践》这本书并以此学习Git和GitHub使用的相关思考和笔记。 更新记录...

  • 数据可视化.js

    1.相关资料 慕课网echarts3.0入门与实战git地址

网友评论

      本文标题:GIT学习与实战记录

      本文链接:https://www.haomeiwen.com/subject/bcmjuctx.html