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 的时光),但少有 ...
随机推荐
- 如何在网上找java包
如图所示 在java api后面输入你要找包的名称就可以了
- 学习FastDfs(二)
分布式文件系统(DFS) 指文件系统管理的物理存储资源不一定直接连接在本地节点上 而是通过计算机网络与节点相连 分布式文件系统的设计基于客户机/服务器模式 一个典型的网络可能包括多个多个用户访问的服务 ...
- 乱序数组中第k大的数(顺序统计量)
该问题是顺序统计量中十分经典的问题. 使用快排中的分区法,将第k大的数排序.若双向扫描分区加上三点中值法或绝对中值法,可以保证在 O(n) 时间里找出第k大的数. 补充:可以直接使用C++STL中的n ...
- js技术之如何在JS中获取input的值
在JavaScript中获取input元素value的值: 方法一:var variations_number = $("#input的id名").val(); 1 <!DO ...
- matlab拟合函数的三种方法
方法一:多项式拟合polyfit 1 x=[1 2 3 4 5 6 7 8 9]; 2 3 y=[9 7 6 3 -1 2 5 7 20]; 4 P= polyfit(x, y, 3) %三阶多项式拟 ...
- 安装ESLint
安装ESLint ESLint是静态代码检查工具,配合TypeScript使用可以帮助检查TypeScript的语法和代码风格. 添加ESLint到当前工程,yarn add -D eslint. 使 ...
- JavaScript HTML5脚本编程——“历史状态管理”的注意要点
历史状态管理是现代Web应用开发中的一个难点.在现代Web应用中,用户的每次操作不一定会打开一个全新的页面,因此"后退"和"前进"按钮也就失去了作用,导致用户很 ...
- Nuxt.js服务端渲染实践,从开发到部署
感悟 经过几个周六周日的尝试,终于解决了服务端渲染中的常见问题,当SEO不在是问题的时候,或许才是我们搞前端的真正的春天,其中也遇到了一些小坑,Nuxt.js官方还是很给力的,提issue后很积极的给 ...
- 【每日日报】第十八天 ----java最全排序方法
1 今天看了Java的第三章 2 冒泡法排序: package Line; import java.util.Arrays; public class MaoPao { public static v ...
- idea 创建maven web项目部署在 tomcat maven plugin中
前提:1.安装jdk,多数系统使用jdk1.8.xxx,因此选择下载此版本的居多 2.安装Maven 3.部署到tomcat我们可以有两种方式,一种是利用tomcat插件来进行部署,另一种是下载tom ...