Git在项目中使用技巧
1.常用的命令
mkdir     文件夹名 创建文件夹
clear     清楚屏幕
ls或者ll   将当前目录下的子文件和子目录平铺在控制台
find      目录名 将对应目录下的子孙文件或子孙目录平铺在控制台
rm 文件名  删除文件
mv 源文件  重命名文件
cat  ...   查看对应文件内容
2.git高级命令
git 操作基本流程
- 创建一个文件夹(项目)
 git init项目下出现 .git 文件
- git全局配置
 git config --global user.name "XXXX"
 git config --global user.email "XXXX"
- 在所在项目中工作 (例如你在src文件下写完你的代码)
 项目代码写完,执行 git add 路径 (一般直接写 git add ./ 将所有代码提交到暂存区
 git add ./命令流程(先到版本库再到暂存区 git hash-object -w 文件名 git update-index 不理解就去看git的底层命令)
- 代码提交  git commit -m "注释内容"(提交到本地库)
- 分支上工作(项目主分支是dev,开发使需要创建新的分支,例如创建test)
 1. 创建分支git branch test
 2. 切换分支git checkout test(切换操作,必须保持分支的处于已提交状态)
 注:可以直接创建并切换git checkout -b test
 3. 分支上工作顺序 (首次无需拉取远程dev代码)
 4. 拉取远程dev代码(或者合并dev代码)
 git pull origin "dev"或git merge dev
 处理冲突,然后工作
 5. 事情处理完,将修改后内容添加至暂存区
 git add ./
 6. 添加暂存区后再添加到本地仓库
 git commit -m "注释"
 7. 将分支代码提交到远程仓库
 如果项目是首次创建,需要和远程仓库连接(如果项目是直接从远程 clone,则无需操作)
 git remote add origin 地址
 git push -u origin test
 8. 提交分支后,团队leader会审查代码,再合并到dev上
git操作
- 如何修改分支名称? 
 需要将分支br_rename_old修改为br_rename_new,执行如下步骤:
 1、执行命令- git checkout br_rename_old
 2、执行命令- git pull origin br_rename_old将代码更新到和远程仓库一致
 3、执行命令- git branch -m br_rename_old br_rename_new将本地仓库的br_rename_old的名称修改为br_rename_new
 4、执行命令- git push --set-upstream origin br_rename_new将本地分支push到远程仓库
 5、执行命令- git push origin --delete br_rename_old将远程分支br_rename_old删除
- 如何删除暂存区文件?(可以使用编辑自带) 
 1、仅仅删除暂存区文件
 - git rm --cache 当前文件所在目录(例如- git rm --cache src/vdfvsdfvosdjfvosdfvdof.txt)
 2、暂存区和工作区都删除
 - git rm -f 当前文件所在目录(例如- git rm -f src/vdfvsdfvosdjfvosdfvdof.txt)
- 如何删除版本库?(已提交) 
 1.仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
 当我们执行 --soft 命令后,可以看到控制台无任何输出。它只是把HEAD指向了上一个版本
 - git reset --soft HEAD^(指向上一个版本)
 - git reset --soft 版本库ID
 2.仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
 - git reset ----mixed HEAD^
 3.彻底将工作去/暂存区和版本库记录恢复到指定的版本库
 - git reset --hard HEAD^(返回上一个)
 - git reset --hard HEAD@{n}(通过reflog返回)或者- git reset --hard 版本库id(通过reflog返回)**
- git fetch作用? 
 更新远程 从远端仓库中下载commits, files, refs到本地仓库中。当你想要看看其他人都在做些什么的时候,就要使用fetch命令。
 你可以认为git fetch是这两者中更加安全的那个,即便下载了远端的内容,但也不会更新你本地仓库的版本状态,以保证你本地当前代码完好无损。反观git pull命令则是一个更加激进的命令,它会下载当前正在工作的分支对应的远端内容,并且在下载成功之后马上执行一个git merge命令,为新下载下来的远端内容创建一次merge commit。此时如果你有正在进行中的工作还没准备好进行合并,这些行为可能会造成代码冲突。
- git stash作用?(以及git stash pop) 
 在某分支上修改内容,这时候却需要切换其他分支,但没修改好不想提交,可以使用git stash 命令,将但前分支没修改好的代码,保存至堆栈区,在切换到别的分支操作。在别的分支操作完,切回到刚才的分支,可以先将刚才分支删除,在重新创建,切换后,在把刚才保存在堆栈的修改内容,pop出来,执行 git stash pop命令(可以在任意分支pop出来)
- 删除分支? 
 git branch -D '分支名' 删除本地分支
 git push origin --delete 分支名 删除远程分支
- 如何更新本地分支内容?(例如主分支为dev,当前分支为test) 
 如果想拉去dev分支最新代码
 方法一:git pull origin dev (做了两步操作,拉去dev最新代码,并将它合并到当前分支)
 方法二:git merge dev (将dev分支合共到当前分支,dev不是最新还需要切到dev分支更新,切换之前先git stash)
- 常用命令 
 - git branch -r查看所有远程分支- git branch -a列出所有本地分支
 - git checkout -切换到上一个分支 (可以方便两个分支之间进行切换)
 - git push origin --delete分支名 删除远程分支
 - git status显示有变更的文件
 - git log显示当前分支的版本历史
 - git diff显示暂存区和工作区的差异 (你可以查看你改了什么,前期你没有添加到暂存)
 - git fetch下载远程仓库所有变动 (哪些分支新建了等)
 - git stash(未跟踪的文件不会被缓存,例如新创建的文件)
 - git stash list查看缓存了几条
 - git stash save "test-cmd-stash"
 - git stash pop//命令恢复之前缓存的工作目录,这个指令将缓存堆栈中的第一个stash删 除,并将对应修改应用到当前的工作目录下。(并将缓存拷贝删除)
 - git stash apply//命令,将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝。
 - git stash apply stash@{n}n表示第几个到工作区
 - git stash drop//移除stash 移除具体哪一个
 - git stash drop stash@{n}
 - git stash clear//删除所有缓存的stash
- 撤回push操作?(远程仓库)撤回已经提交到远程的代码 
 先head指向要回到的版本,在强行推送到远端
 git push --force
  
例如撤回前两个,只需将本地head指向第三个,在强行推送到远端
git reset --hard 1c41df20421e36343d453d64477e0594fd98b041
git push --force
10. reset回退commit,后悔咋办?
例如执行git reset --hard HEAD^,指向了别的版本,想在回来。
执行git reflog 查看所有 HEAD的切换  找到版本id,在执行git reset --hard 版本id

上图是执行git reflog后的结果
git reflog展示你历史操作记录,在你执行错误命令时,可以帮助你快速返回执行错误之前的状态
reflog第一个记录(HEAD@{0})就是你最新的操作记录,如果你想返回这操作之前的一个步骤,只需将 HEAD指向HEAD@{1} ,具体操作如下:
git reset --hard HEAD@{1}  或者  git reset --hard baa789e     (对应的版本id)
Git在项目中使用技巧的更多相关文章
- git在项目中的实际运用
		项目中只运用git版本管理的情况下: 1.创建分支命令: git branch (branchname) 切换分支命令: git checkout (branchname) 当你切换分支的时候,Git ... 
- git忽略项目中的指定文件
		git仓库提交原则:提交给远程仓库的只有源代码和相关的配置文件 如果是使用模板建立的仓库,会自带有.gitignore文件,无需再建立.当然如果需要在指定文件忽略,只需要在这个文件中添加指定的文件即可 ... 
- git统计项目中成员代码量
		查看git上个人代码量 git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; su ... 
- Git Bash+EGit在项目中配合使用最常用方法总结(根据场景使用)
		最近在项目中使用Git进行代码管理,之前一直用SVN进行管理,现在谈一谈Git在项目中如何与EGit插件配合使用,高效同步开发. 使用过SVN一段时间的人,初识Git一定感觉很别扭,发现会遇到各种各样 ... 
- 使用git向github中添加项目并更新(备忘录)
		今天使用Git&github&ST3时,发现ST3不仅是git插件不能push成功,使用sublimegit插件也不行. 可能是没有掌握sublimegit的使用技巧,有待后续继续摸索 ... 
- 在Spring tools suite中使用git 共享项目
		我们都在eclipse 和 myeclipse中使用过cvs 和 svn 版本控制工具进行团队开发,今天我学习了另外一种版本控制工具git,下面我演示如何在Spring tools suite中使用g ... 
- [git]安装git-pylint-commit-hook提高python项目中的代码质量
		什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ... 
- Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出
		从今天开始我将会把在项目中遇到的问题,以及常用的一些技巧来分享出来,以此来促进自己的学习和提升自己:更加方便我以后的查阅. 现在要说的是:用Python来读取excel表的数据,返回字典(dict), ... 
- 在VS项目中通过GIT生成版本号作为编译版本号
		上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ... 
随机推荐
- 如何实现 Spring Boot 应用程序的安全性?
			为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖项,并且必须添加安全配置.它只需要很少的代码.配置类将必须扩展WebSecurity ... 
- List和 Map区别?
			一个是存储单列数据的集合,另一个是存储键和值这样的双列数据的集合,List中存储的数据是有顺序,并且允许重复:Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的. 
- GC 是什么?为什么要有 GC?
			GC 是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误 的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC 功能可以自动 监测对象是否超过作用域从而达到自动回收内存 ... 
- MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如  何保证 redis 中的数据都是热点数据?
			Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略. 相关知识:Redis 提供 6 种数据淘汰策略: volatile-lru:从已设置过期时间的数据集(server.db[i]. ... 
- java-spring
			Spring-IOC ioc概念 控制反转 把对象创建和对象之间的调用过程,交给Spring 进行管理. 目的就是,为了降低耦合度,因为当你想在一个类当中调用另外一个类的方法,你需要获得另外一个类的实 ... 
- cache + redis(一)
			一.缓存的概念 1.Buffer,Cache的区别: buffer: 一般用于写操作,写缓冲. cache: 一般用于读操作,读缓存. 它们都是解决速度不一致的问题,都设计到IO操作. 2.Cache ... 
- Flask 简单使用,这一篇就够了!
			#Flask 安装依赖包及作用 - jinja2 模板语言 (flask依赖包) - markupsafe 防止css攻击 (flask依赖包) - werkzeug --wkz 类似于django中 ... 
- c++的常用库
			C++ 资源大全 关于 C++ 框架.库和资源的一些汇总列表,内容包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++标准库,包括了STL容器,算法和 ... 
- 9_状态观测器设计_Linear Observer Design_Matlab_Simulink建模(上)
- 2022首场MASA技术团队黑客松赛事大赛完美落幕!精彩集锦
			Masa技术团队在2021年创立,这一年我们团队发布了我们第一个产品,Masa Blazor.登上了.NET Conf China,我们承诺,开源我们的产品,为开源社区增砖加瓦,一路上收获技术社区文章 ... 
