Git学习上

Git学习上

初始化

  初次使用要配置name和email(分布式版本控制),因为提交代码日志里(git log)会显示并方便查询是谁做的改动以及他的联系方式,config类似用法还有其设置编辑器,设置显示字体颜色,使用别名等等

git config --global user.name "user_name"
git config --global user.email "user_email"

创建仓库

mkdir learngit  //在桌面新建文件夹
cd learngit  //进入文件夹
pwd  //显示当前目录位置(应该是桌面)

  只有init后,该文件夹才有控制文本文件的能力,也就是变成了一个管理代码文件的本地仓库

git init  //将文件夹learngit初始化成一个仓库
ls -ah  //显示文件夹下的隐藏文件.git
vi readme.txt  //新建一个文件并编辑
git add readme.txt  //可以添加很多文件
git commit -m "write a readme file"  //将这些文件提交到本地仓库
cat readme.txt  //显示文件中的内容

版本控制与恢复

  修改两次readme文件后并add/commit俩次后,这样变成三个版本
git log //查看提交日志
image.png
  Git将当前版本标记为HEAD(是一个指针),黄字部分为commit id版本号(这么大的数是为了防止多人协作中发生版本号冲突),这样便于恢复历史版本,如果感觉日志输出信息太多,使用
git log --pretty=oneline
版本回滚
git reset --hard HEAD^
回滚到上一个版本,上上版本为HEAD^^,上100个版本为HEAD~100
如果后悔了,再翻滚回刚才的版本,要用版本号恢复(截图的黄字)
git reset --hard 2d65 //写前几位就行,不用都写
这种版本来回切换是非常快的,相当于指针的指向改变了,指向另一个版本
image.png
git reflog命令非常强大,显示你运行的每一次动作,这样也可以查找版本号,即使是电脑关了再打开也是可以查找到的,不用担心重返未来,所以git的版本控制很全面

工作区和暂存区

  使用vi LICENSE创建文本输入内容后,输入i进入编辑模式,按esc退出编辑模式,再输入:wq或:x则保存并退出,如果输入:q则不保存退出。touch LICENSE命令也是用来新建文件

git status  //查看当前工作区的各任务情况
git add readme.txt
git add LICENSE  //加入暂存区stage(或index)
git commit -m “new file”  //提交到master分支上
git status  //则显示工作区间上没有工作的文件了

image.png

管理修改

  修改了readme如果不git add readme.txt 则提交后更改的部分并没有提交!所以每次有更改部分后要先git add后加入暂存区再commit,所以git是面向修改的,使用git diff来比较各部分的文件内容差异(也就是different)
image.png
git diff HEAD -- readme.txt //查看工作区和版本库里最新版本的区别
加号是代表工作区的改动,减号是代表分支(如master,也叫版本库)的改动

撤销修改(三种情况)

  • 修改了但还没有add到暂存区(git checkout -- readme.txt撤销修改)
  • 如果add到暂存区了,则先撤销暂存区的修改,回到工作区,再在工作区进行修改撤销(1.git reset HEAD readme.txt 2.git checkout -- readme.txt
    git reset不光可以版本回退,还可以撤销暂存区修改
  • 如果commit到分支上了,那就老老实实git reset回滚到上一个版本。linux的命令行,"-" 后面跟的是单个字母的参数,如-m, "–"后面跟的是多个字母的参数

删除文件(两种情况)

rm text.txt //用来删除当前文件夹里的文件
ls //列出当前文件夹下的文件

  • 提交到版本库了,但本地文件丢失,可以把版本库的那个文件也删了,保持工作区间与版本库一致
    rm text.txt //先手动删除工作区间文件
    image.png
git status  //提示工作区间文件被删除
git rm text.txt  //用命令把版本库的也删了
git commit -m "remove text.txt"  //之后再提交一次
  • 用版本库的那个对应的文件来恢复工作区间删除的文件
    git checkout -- test.txt

远程仓库

  在GitHub上新建一个仓库,因为本地已经有一个仓库了,可以将本地的仓库与在GitHub上新建的仓库进行关联,并把本地仓库的内容推送到GitHub的仓库上
git remote add origin git@github.com:Artistwcher/learn-git.git
git push -u origin master
  但git与GitHub没关联起来,GitHub使用ssh与https通信协议,建议用ssh速度快,安装了git bush都会带着ssh,不然需要自己安装,可以输入ssh看看。
ssh-keygen -t rsa //git生成ssh密钥与公钥
image.png
  按照上面提示的路径下找公钥id_rsa.pub文件并打开,将其中的公钥添加到GitHub上即可关联
ssh -T git@github.com //输入命令看看是否关联成功
git push -u origin master //之后再重新push一下
  这下应该会push成功,远程仓库名字就叫origin,另外第一次推送远程仓库为空的,所以要用-u参数。推送时不光将本地master分支推送到远程仓库master上,还将这两地分支关联起来,以后命令可以简化成git push master甚至是git push
总结checkout的用法,太多了
#pic_center //csdn图片居中方法,将其加入到URL后面

reference

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值