Git使用笔记

git 使用笔记 

细一点的教程可以看

Git教程 - 廖雪峰的官方网站

30分钟学会使用Git | 程序师 - 程序员、编程语言、软件开发、编程技术

一般先创建秘钥

ssh-keygen -t rsa -C ***你的邮箱

如果多个项目有不同地址比如一个github 一个码云就参考Windows下Git多账号配置,同一电脑多个ssh-key的管理 - popfisher - 博客园
之后添加到设置里面ssh 

git clone  xxx//ssh or https

一般创建并切换分支开始开发

git checkout -b dev

提交就是常规的

git add . //添加所有修改
git status //查看所有改动
git commit -m '提交说明' //提交本地仓库
git pull //如果冲突就先解决冲突
git push //推送 
git branch //查看分支
git branch <name> //创建分支 分支名
git checkout <name> //切换分支 分支名
git checkout -b <name> //创建+切换分支 分支名
git merge <name> //合并某分支到当前分支 分支名
git branch -d <name> // 删除分支 分支名

之后远程仓库如果没有这个分支就用下面这个提交

git push -u origin 分支名

查看某个文件的相关修改  后面跟路径

git log --pretty=oneline  filepath

commit之后后悔了怎么办 

git reset --hard commit_id //HEAD 就是当前版本
git reset --hard HEAD^//上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --soft HEAD^
--mixed //意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
 
--soft  //不删除工作空间改动代码,撤销commit,不撤销git add . 
 
--hard  //删除工作空间改动代码,撤销commit,撤销git add . 


顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
修改还未push的注释: 
git commit --amend// i 开始编辑  esc 退出编辑模式  :wq 保存

刚刚push到远端还没有人其他人下载或改动的:
用同样的命令修改后保存退出。 
再使用git push --force-with-lease origin master

git checkout commit_id hello.txt //将hello.txt回滚到最初的状态,需要指定回滚到哪个提交,以及文件的全路径。
git commit --amend// i 开始编辑  esc 退出编辑模式  :wq 保存

git 配置别名 下面是我使用的

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.cm 'commit -m'
git config --global alias.br branch
//设置git lg 为 格式化后的git log
git config --global alias.lg "log --color --graph --pretty=format:'-%Cred%h%Creset %C(bold blue)<%cn>%Creset %s %Cgreen(%cr) %C(yellow)%d%Creset ' --abbrev-commit"

假设我们正在一个新的分支做新的功能,这个时候突然有一个紧急的bug需要修复,而且修复完之后需要立即发布。需要暂时切到别的分支,修复完bug再切回来,而且代码也能保留

这个时候 需要stash 命令就大有用处了,前提是我们的代码没有进行 commit 

git stash  //把当前分支所有没有 commit 的代码先暂存起来
git stash list //查看暂存区记录
git stash apply // 恢复暂存
git stash pop //还原 stash并且 记录删除
git stash drop //删除最近一条的 stash 记录
git stash clear //清空所有暂存区的记录

比较不同

git diff <$id1> <$id2>   // 比较两次提交之间的差异
git diff <branch1>..<branch2> // 在两个分支之间比较 
git diff --staged   // 比较暂存区和版本库差异

大部分项目中,会有写文件,文件夹是我们不想提交的。为了防止一不小心提交,我们需要gitignore文件:

  1. 在项目根目录创建.gitignore文件
  2. 在文件中列出不需要提交的文件名,文件夹名,每个一行
  3. .gitignore文件需要提交,就像普通文件一样

通常会被ignore的文件有:

  • log文件
  • task runner builds
  • node_modules等文件夹

例如:

*.log
build/
node_modules/

想删除已经提交文件的跟踪:

git rm -r -n --cached "你的目录或者文件" // -n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。(只用于展示,给你看的)

git rm -r --cached "你的目录或者文件" //最终执行命令.

Git提交时会写一些说明提现本次提交的所作所为一般 使用

type(本次提交的类型)scope(本次提交的影响范围)subject(commit 目的的简短描述)

其中 type一般以下几种:

  • build: 影响构建系统或外部依赖关系的更改(示例范围:gulp,-broccoli,npm)
  • ci: 更改我们的持续集成文件和脚本(e.g.: Travis,GitLab等)
  • docs: 仅文档更改
  • feat: 一个新功能
  • fix: 修复错误
  • perf: 改进性能的代码更改
  • refactor: 代码更改,既不修复错误也不添加功能
  • style: 不影响代码含义的变化(空白,格式化,缺少分号等)
  • test: 添加缺失测试或更正现有测试
  • chore: 构建过程或辅助工具的变动
  • release: 版本发布
  • revert: 特殊情况,当前 commit 用于撤销以前的 commit
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值