分享我所学到的git命令基础 以及各种坑
首先来下载git 我用的是liunx系统 window系统直接去官网下载就行 ,
liunx 系统输入命令apt-get install git
等待安装
git--version
命令 查看版本号
git config --global user.name"用户名";
设置自己的用户名(有必要记一下—>期末要考~)
git config --global user.email"邮箱";
设置自己的邮箱 (高考要考)
ls -al~/.ssh/
查看是否有密钥文件 (也可以在主目录输入 cd .ssh/
进入ssh文件夹 再输入ls
是否有
id_rsa.pub 文件)
如果没有 输入 ssh-keygen -t rsa -C "邮箱"
创建密钥
~/.ssh/id_rsa.pub
这个命令是查看密钥文件的位置的
gut config --list
查看配置信息
好了 git仓库就配置好了
常规GIT操作
建个文件夹test mkdir test
进入文件cd tese
git init
这个命令是初始化git仓库 输入完成后 会显示
已初始化空的 Git 仓库于 /home/liuhaopeng/test/.git/
这个时候可以在这个文件夹里创建一个文件 随意编辑点东西
vim a.txt
我不知道你在想什么
还是那个地点那条街
我很明白你在想什么
还是那个地点那条街
好了 现在 cat a.txt
就可以看到a文件里的歌词了
输入 git add a.txt
将这个文件放入到暂存区
输入 git status
(此命令为查看git库信息×很重要哦)会发现显示
位于分支 master
尚无提交
要提交的变更:
(使用 "git rm --cached <文件>..." 以取消暂存)
新文件: a.txt
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
.a.txt.un~
提示你已经把文件 放到了暂存区 使用git rm --cached<文件名>
可以再扔回去 取消暂存
接下来 输入 git commit -m"geci"
git commit代表提交到版本库 -m后边加的是此次提交的别名可以随意起 我为了好理解 就用拼音咯~
现在就代表你的a.txt文件提交到版本库里了
什么是github ?如何把github线上的代码和本地的合并 ?
说简单点 github就是个线上的仓库 你可以把本地代码同步到线上去 具体github有多好 功能多强大建议你看官方文档
场景1
你在github网站上已经注册了账号 记得把之前你配置好的密钥复制出来 在github上绑定下
然后你也摸索着建了个仓库
你想把这个本地的a.txt文件(上边建的歌词文件)上传到github上怎么办???
第一步
先链接远程仓库哦 输入:
git remote add origin https://github.com/zhanghaodd/hhaidd.git
这个是https链接方法
git remote add origin git@github.com/zhanghaodd/hhaidd.git
这个是ssh链接方法
解释下上边的输入的命令 git remote add origin 代表添加链接仓库 后边跟的是我的地址 你们的地址你们自己复制 hhaidd.git 是我的远程仓库的名字 你们写自己的
这个时候按思路应该是输入git push origin master
(这个命令的意思把本地master主分支的东西提交上去)输入后会出现:
error: 无法推送一些引用到 'https://github.com/zhanghaodd/hhaidd.git'
提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
提示:再次推送前,先与远程变更合并(如 'git pull ...')。详见
提示:'git push --help' 中的 'Note about fast-forwards' 小节。
说是当前提交的分支落后与远程分支 让你推送前先合并
那咱就用git pull origin master
合并一下子:
fatal: 拒绝合并无关的历史
然后就会出现这个报错 拒绝合并无关历史
以我的经验应该是一个远程分支master分支 一个是本地的俩版本库不一样 这种合并不了
这种世纪难题 想解决 好办 只需要在pull的时候价格参数 git pull origin master --allow-unrelated-histories
以上代码是加了个 -allow-unrelated-histories这个参数 然后就会成功提交上去
使用clone克隆
上边只是演示下一些常见错误的解决方法
正常用git 不需要那么麻烦
如果你要操作一个线上的库 只需要 git clone /地址/仓库名
就行
比如像我这样 git clone git@github.com:zhanghaodd/hhaidd.git
我用的是ssh克隆也可以用http克隆
克隆下来的库 直接 cd hhaidd
切进去这个库 一顿操作 一顿修改 然后 提交 上传 没问题!~
在写几个场景
就拿刚才的那个库 不是提交了个a.txt文件吗 线上可以查看a.txt文件 是一些歌词
正常情况下 这些歌词还没有写完 你还要在本地继续写 然后你就在master的主分支上创建了个dev分支来继续写后边的歌词 操作:git checkout -b dev
输入 vim a.txt
来继续写这个歌词
我不知道你在想什么
还是那个地点那条街
我很明白你在想什么
还是那个地点那条街
想念的地点
结束的一切
很明白爱并不是你要的一切~
好了 还没有写完呢也没有提交 老板突然说上边的线上的歌词不对 需要修改 这个时候 别慌使用命令
git stash
可以保存工作目录和索引状态
然后安心的切会到master 分支上 git checkout master
建个cc分支继续修改 git checkout -b cc
修改完成之后 合并到master分支上边 先切换到master上 git checkout master
再合并 git merge cc
OK push 上传 然后再回来切换到dev分支上边 git checkout dev
使用命令git stash pop
恢复之前在工作区的东西 继续慢慢写
完美
我是按照我的思路写的 可能新手对于后边的场景不太懂 建议你们百度搜索 progit
查看这个教程
有什么BUG也可以给我留言 如果我遇到过解决过 必定回复 一起进步~!!!!♪(∇*)