GIT 操作大全 基于廖雪峰
命令显示从最近到最远的提交日志 git log / git log --pretty=oneline
回退到上一个版本:$ git reset --hard HEAD^ (用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100)
指定回到未来的某个版本:$ git reset --hard 1094a (版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。)
记录你的每一次命令:git reflog 然后通过 $ git reset --hard 1094a 回到指定版本
查看文件内容:cat readme.txt
添加进暂存区:add 文件名 / add .
查看工作区和暂存区的区别:git diff HEAD -- readme.txt
丢弃工作区的修改:$ git checkout -- readme.txt
撤销掉已经存入暂存区的修改,重新放回工作区:git reset HEAD readme.txt 如果不需要修改在丢弃工作区的修改:$ git checkout -- readme.txt
不仅存入了暂存区而且还提交到了版本库撤销方法:$ git reset --hard HEAD^ (版本回退)
修改后文件提交到版本库中,又把工作区的文件删了,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了现在你有两个选择:
一:是确实要从版本库中删除该文件:$ git rm test.txt 然后:$ git commit -m "remove test.txt"
二:删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:$ git checkout -- test.txt
与远程仓库建立连接:
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
创建一个仓库关联本地仓库:$ git remote add origin git@github.com:michaelliao/learngit.git
本地库的所有内容推送到远程库上:$ git push -u origin master (第一次推送要加 -u)
假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆:$ git clone git@github.com:michaelliao/gitskills.git
查看当前分支:git branch
创建dev分支,然后切换到dev分支:$ git checkout -b dev
在dev上做出修改提交打了版本库 然后切回 master分支 合并:git add readme.txt $ git commit -m "branch test" $ git checkout master $ git merge dev
删除dev分支:$ git branch -d dev
在feature分支修改了文件提交到了版本库 切回master分支修改了同样的文件提交到了版本库 然后合并feature分支出现冲突 解决办法:
$ git switch -c feature1
$ git add readme.txt
$ git commit -m "AND simple"
$ git switch master
$ git add readme.txt
$ git commit -m "& simple"
$ git merge feature1
Auto-merging readme.txt
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:
$ git add readme.txt
$ git commit -m "conflict fixed"
把当前工作现场“储藏”起来:$ git stash 然后接可以切换到别的分支进行操作,在别的分支操作完成之后切回来恢复:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
查看储藏室:git stash list
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:$ git stash apply stash@{0}
在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。$ git branch -D feature-vulcan
以下仅供参考。反正我平常不是这样,我直接 git pull origin 分支,不会出现不能pull的状况
首先,可以试图用
git push origin <branch-name>推送自己的修改;如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull试图合并;如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
GIT 操作大全 基于廖雪峰的更多相关文章
- git 操作大全
Git 以下内容整理自廖雪峰的git教程,主要用于个人方便使用git命令 git忽略已经被纳入版本库的文件 使用 git update-index –-skip-worktree [file] 可以实 ...
- git常用命令总结--廖雪峰老师Git教程命令总结
学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般 ...
- git操作大全
分支克隆 1. git clone [git路径] #克隆仓库代码 2. git clone [Git路径] -b [分支name] #克隆仓库下某分支代码 查看分支 1.git branch #查看 ...
- 大白话说GIT常用操作,常用指令git操作大全
列一下在开发中用的比较多的git指令 git clone https://github.com/chineseLiao/Small-career // 克隆远程仓库到本地 git add . // 把 ...
- Git操作大全[实际用到的都放在这里总结]
1.如何合并远程两个分支feature-rebuild和develop? g fetch g checkout -b develop origin/develop g merge feature-re ...
- Git使用总结(廖雪峰git)
安装 $ sudo apt-get install git 配置 # 配置用户名和邮箱 $ git config --global user.name "Your Name" $ ...
- python的MetaClass的代码分析。基于廖雪峰博客代码
# 一张表一个类,表内每一行就是一个实例 ''' 一个单独的元类使用的程序分析. ''' class Field(object): def __init__(self, name, column_ty ...
- 廖雪峰 Git 教程 + Git-Cheat-Sheet 学习总结
廖雪峰 Git 教程 + Git-Cheat-Sheet 学习总结 本教程主要是个人的 Git 学习总结. 主要参考博客: 廖雪峰 Git 教程 Git-Cheat-Sheet 文章目录 廖雪峰 Gi ...
- git入门笔记汇总——(廖雪峰博客git入门)
本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本 ...
- 【学习总结】Git学习-参考廖雪峰老师教程-总
公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在 ...
随机推荐
- 延期!欧盟新标EN IEC 62368-1:2020延至2024年7月6日生效
近日,TC108X成员投票同意将EN IEC 62368-1:2020(对应IEC 62368-1第三版)的DOW (Date Of Withdrawn)日期由原先的2023年1月6日延长至2024年 ...
- vue项目中 vscode 保存时自动格式化设置,保持单引号和去除多余分号、逗号
1.settings.json中添加: "prettier.semi": false, // 取消自动加分号 "prettier.singleQuote": t ...
- 修改mysql root密码,在workbench中导入.sql文件
修改mysql root密码: 1.如果没有配置环境变量,在 \Program Files\MySQL\MySQL Server 8.0\bin 文件下 Shit+右键打开 Powershell 窗口 ...
- 执行helm list 提示kube/config 告警问题
1.现象 WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /root/.ku ...
- play() failed because the user didn‘t interact with the document first
使用js调用音频文件报错,错误信息如下:play() failed because the user didn't interact with the document first该报错是浏览器对于自 ...
- 3-1 熟悉Hadoop及其操作
Hadoop最早起源于Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取.索引.查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题--如何解决数十亿网页的存储和索引 ...
- 线程安全与数据结构JAVA
线程 线程与进程本质的区别在于每个进程拥有自己的一整套变量, 而线程之间可以有共享变量.另外创建.销毁一个线程的代价比启动新进程的代价要小. 在java中,没有可以强制线程终止的方法,然而, inte ...
- vue使用keepalive缓存上级页面
参考: vue单页应用前进刷新后退不刷新方案探讨 vue,vue-router实现浏览器返回不刷新页面 vue 怎么处理当this.$router.go(-1)时,判断返回指定页面设置指定页面的kee ...
- APK 跳转其他APK
+import android.content.ComponentName;^M /* @@ -343,6 +346,15 @@ public class MainActivity extends A ...
- Surge 开启脚本功能后,京东自动签到总结
本人小白,花费半天时间才弄好,写下这个给自己和后来人指路. Surge 开启脚本功能后,京东自动签到获取京豆总结: 1.注意 去 Raw 真实地址下载 js https://github.com/No ...