实用干货分享(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 ...
随机推荐
- 微信小程序点击按钮进行页面跳转
下面是wxml代码 <button type="primary" bindtap="go">跳转到list页面</button> 下面是 ...
- Kernel调试追踪技术之 Kprobe on ARM64
kprobe是什么? kprobe 是一种动态调试机制,用于debugging,动态跟踪,性能分析,动态修改内核行为等,2004年由IBM发布,是名为Dprobes工具集的底层实现机制[1][2],2 ...
- 2023年3月中国数据库行业分析报告正式发布,带你了解NL2SQL技术原理
为了帮助大家及时了解中国数据库行业发展现状.梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新<中国数据库行业分析报告>,持 ...
- C# Webapi Filter 过滤器 - 生命周期钩子函数 - Action Filter 基础
ACTION Filter IAsyncACtionFilter 接口 : 1.注入ActionFilter // 注册过滤器 builder.Services.Configure<MvcOpt ...
- 在 Ubuntu 22.04 上安装 KubeSphere 实战教程
作者:老 Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes.KubeSphere.DevOps.OpenStack.Ans ...
- 下一代云电脑技术来临,为什么PC Farm才是未来,以ToDesk为例
近年来飞速发展的云电脑技术,正在挤压传统电脑的生存空间.由于用户对电脑计算能力的要求日益增高,而传统电脑往往会受限于硬件性能无法更新,更换花费较高等因素,难以满足用户对高性能电脑的期待. 与此同时,下 ...
- CSS:Transform属性
本文将深入探讨css动画中transform属性,这是一种强大的工具,可以实现元素的旋转.缩放.移动和倾斜等效果.本文将通过详细的解释和实际案例,帮助你掌握transform属性的使用方法来增强你的网 ...
- C++处理系统相关权限问题
1.给某个文件或文件夹赋予特定用户的特定访问权限 /* 给文件(夹)szPath设置用户名为pszAccount的可读可写可修改权限 */ bool GiveTheAccountPrivToFile( ...
- 5.5 Vim移动光标命令汇总
Vim 文本编辑器中,最简单的移动光标的方式是使用方向键,但这种方式的效率太低,更高效的方式使用快捷键. Vim 移动光标常用的快捷键及其功能如下面各表所示,需要注意的是,表中所有的快捷键都在命令模式 ...
- 2.15 Linux中一切皆文件[包含优缺点]
Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘.监视器.硬盘.打印机)是文件,就连套接字(socket). ...