实用干货分享(3)- Git常用操作干货分享
官方学习地址
https://git-scm.com/book/zh/v2
简单的代码提交流程
1. git status 查看工作区代码相对于暂存区的差别;
2. git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录;
3. git commit -m ‘注释’ 将缓存区内容添加到本地仓库;
4. git push origin master 将本地版本库推送到远程服务器;
5. origin是远程主机,master表示是远程服务器上的master分支,分支名是可以修改的。
防止出错的步骤
1. git add xx/xxx/file1 xx/xx/file2;
2. git stash 将本地修改存储起来;
3. git pull 从仓库获取最新代码;
4. git stash pop stash@{0} 将本地的代码和远程获取的合并(这里可能提示冲突conflict);
5. git status 看哪几个有冲突,如果没冲突,→8 commit,push, 如果冲突→6;
6. git difftool xx/xxx/file3 唤起对比工具,将远程的代码段合并到本地的文件中;
7. git status 看刚才修改的文件有没有add,如果是红色,add一下;
8. git commit -m "姓名 修改某某功能";
9. git push origin head:refs/for/dev_core。
回退流程
【参考】
https://www.cnblogs.com/wpcnblog/p/9945732.html
现在先假设几个环境,本文将会给出相应的解决方法:
1. 本地代码(或文件)已经add但是还未commit;
2. 要回退的commit的代码已经commit了,但是还未push到远程个人repository;
3. 要回退的commit的代码已经push到远程的个人分支,但是还未merge到公共的repository;
4. 要回退的commit的代码已被merge(合入)到公共的repository。
git reset有三个参数soft、mixed、hard分别对应head的指针移动、index(暂存区)以及工作目录的修改,当缺省时,默认为mixed参数。
git revert与reset的区别是git revert会生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,也就是说对于项目的版本历史来说是往前走的。而git reset 则是回到某次提交,类似于穿越时空。
冲突解决
【解决本地和远程仓库冲突,当需要pull时提示本地和远程仓库有冲突时】
1. 将本地修改的文件添加到暂存区
git add filename
2. 将本地修改存储起来
git stash
可以通过git stash list查看暂存的内容stash@{0}就是刚才修改的内容
3. pull远程仓库
git pull
git pull <远程主机名> <远程分支名>:<本地主机名>
4. 还原暂存的内容
git stash pop stash@{0}
撤销检查
撤销对某个文件的修改,还原成历史版本,相当于cc的撤销检出
git checkout -- xxx.java (带--)
删除文件
git删除代码的时候务必使用git -rm -r
不要使用rm -rf等linux命令,或者在文件夹里面删除,然后再git add
这样在gerrit会显示冲突(虽然强行提交也没有问题,但是非常不建议这样操作)
去掉换行符自动转换
git config --global core.autocrlf false (!关闭自动转换换行符命令)
git config --global core.safecrlf true
防止提交字符乱码
git config --global gui.encoding utf-8
git config --global core.quotepath false
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
查看用户名和邮箱地址
$ git config user.name
$ git config user.email
修改用户名和邮箱地址
$ git config --global user.name "username"
$ git config --global user.email "email"
撤回commit操作
写完代码后,我们一般这样:
git add . //添加所有文件
git commit -m "本功能全部完成"
执行完commit后,想撤回commit,如何操作?
git reset --soft HEAD
如何忽略.gitignore文件本身
git rm -r --cached .gitignore
git add .
git commit -m 'update .gitignore'
在使用Git的过程中,时常会出现这样一种情况,明明已经提前写好了规则,但是却不起作用,导致每次仍需要重复提交规则,让人难以忍受。
其实是因为这个文件里的规则对已经追踪的文件是没有效果的,所以我们需要使用rm命令清除一下相关的缓存内容。这样文件就会以未追踪的形式出现,然后再重新添加提交一下规则,此时再运行一下git status指令就可以发现,.gitignore文件变为了untrack。
实用干货分享(3)- Git常用操作干货分享的更多相关文章
- 版本控制工具——Git常用操作(上)
本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...
- git报错:'fatal:remote origin already exists'怎么处理?附上git常用操作以及说明。
git添加远程库的时候有可能出现如下的错误, 怎么解决? 只要两步: 1.先删除 $ git remote rm origin 2.再次执行添加就可以了. ---------------------- ...
- git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...
git常用操作 配置用户信息.拉取项目.提交代码.分支操作.版本回退... /********git 配置用户信息************/ git config --global user.name ...
- Git常用操作(二)
仓库拉取 git clone XXX 修改仓库链接 $ git config -l # 显示coding列表 $ git config --get remote.origin.url # 返回orig ...
- 版本控制工具——Git常用操作(下)
本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...
- 分享 | Git常用的一些命令
最近,各个项目团队已经全面从svn转向Git 近期将会分享一些Git的常用操作及使用经验: 先了解下工作中一些需要用到的命令: --------------------------- Git基本常用命 ...
- (数据科学学习手札141)利用Learn Git Branching轻松学习git常用操作
1 简介 大家好我是费老师,Git作为世界上最流行的版本控制系统,可以说是每一位与程序打交道的朋友最值得学习的软件之一.除了管理自己的项目,如果你对参与开源项目感兴趣,那么Git更是联结Github. ...
- git 常用操作总结
廖雪峰博客的git 教程写得不错, 很详细,但是却总结的不是很好. 这里哥再详细总结一遍吧! Git鼓励大量使用分支: 查看分支:git branch 创建分支:git branch 切换分支:git ...
- Git常用操作汇总(转)
如果一个文件被删除了,可以使用切换版本号进行恢复.恢复方法: 先确定需要恢复的文件要恢复成哪一个历史版本(commit),假设那个版本号是: commit_id,那么 git checkout com ...
- git 常用操作
查看某文件的某些行的变化历史: $ git log --pretty=short -u -L 2003,2005:Executor.cpp http://stackoverflow.com/quest ...
随机推荐
- Java日期时间API系列17-----Jdk8中java.time包中的新的日期时间API类,java日期计算4,2个日期对比,获取相差年月日部分属性和相差总的天时分秒毫秒纳秒等
通过Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别 ,可以看出java8设计非常好,新增了Period和Durati ...
- apisix~自定义文件上传代理插件~支持form-data文件和kv参数
参考文献 https://stackoverflow.com/questions/24535189/composing-multipart-form-data-with-a-different-con ...
- 双指针习题:Kalindrome Array
Kalindrome Array 题目链接: Kalindrome Array - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题面翻译 对于长度为 \(m\) 的序列 \(b\), ...
- 在 Ubuntu 22.04 上安装 KubeSphere 实战教程
作者:老 Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes.KubeSphere.DevOps.OpenStack.Ans ...
- 一些新奇的玩意【php篇--持续更新】
人不进步就等于退步! 接触越多的人以及事就能学到更多的东西. 以下仅为本人记录的一些新奇的东西,不喜勿喷! 1.??运算符号,在新的项目中突然发现很多红线报错,还以为是错误!看了下,是??运算的问题, ...
- Visual Studio NUGET 清理方法
NUGET全局包存储位置配置 NuGet缓存实在是太大了,把我唯一的120G固态硬盘(系统盘)基本占用完了--只能是清理一下了,同时修改缓存路径到其他盘以便一劳永逸. 1. 在C:\Program F ...
- idea高效实用快捷键【待补充】
1.快捷键 ctrl+alt+L代码格式化 2.快捷键 ctrl+h查看hierarchy,只能查看向上向下继承关系,而不能看实现了哪些接口. 3,选中右键--Diagram可以查看实现了哪些接口 4 ...
- Jenkins Job触发其他远程Job
https://blog.csdn.net/diaojian66/article/details/117334537 如果不想遇到连接远程Jenkins主机失败后的反复尝试,去掉认证会是一个不错的选择 ...
- Chrome 130 版本新特性& Chrome 130 版本发行说明
Chrome 130 版本新特性& Chrome 130 版本发行说明 一.Chrome 130 版本浏览器更新 1. 新的桌面提示 Chrome 130 引入了一种新的 Toast 样式,用 ...
- games101_Homework4
实现四个点的贝塞尔曲线 作业描述: • bezier:该函数实现绘制 Bézier 曲线的功能.它使用一个控制点序列和一个 OpenCV::Mat 对象作为输入,没有返回值.它会使 t 在 0 到 1 ...