Git常用16条命令

常用命令总结

  1. git config user.name “xx” ;git config user.email “xx”:配置用户名,邮箱
  2. git clone xxx
  3. git init :初始化本地仓库,生成.git文件夹
  4. git remote add origin [url] :添加名称为origin 的远程仓库
  5. git branch:查看分支情况
  6. git fetch -p 清理本地无效分支(远程已删除本地没删除的分支)
  7. git checkout xx:切换分支
  8. git status:查看文件状态
  9. git log:查看提交记录
  10. git add . 提交到暂存区
  11. git stash 提交内容暂时缓存修改
  12. git commit -m “…” 提交代码
  13. git pull :拉取远程代码
  14. git merge :合并分支
  15. git push :提交代码到远程分支
  16. git reset:撤销回退版本

常见麻烦

1.误将代码提交到缓存中

利用 git reset 撤回缓存中的代码。

2.误将代码提交到本地仓库中,

git reset -soft 版本号 回退到某个版本,只回退了commit 信息,不会改变已修改的代码;
git reset -hard 版本号 彻底回退到某一个版本,本地的代码也会改变为上一个版本内容。

3.git commit 提交时报错:husky>pre-commit(node…)…

分析:项目中使用了husky模块,它会在你提交的时候先执行严格模式,对代码进行检查,有error就会终止提交,这个操控严格模式的文件在.git 文件夹下的 hooks 文件夹下,pre-commit不要删掉。在git目录下输入:git commit -m “注释” --no -verify

4.git pull 本地出现冲突

1)git stash //将代码先暂存到本地
2)git pull //将gitlab的工程拉下来
3)git stash pop //还原暂存的内容,并且解决冲突

5.git pull 报错 refusing to merge unrelated histories

远程仓库和本地的没有一个共同的 commit 所以 git 不让提交,认为是写错了 origin ,如果开发者确定是这个 origin 就可以使用 --allow-unrelated-histories 告诉 git 自己确定git pull origin master --allow-unrelated-histories

6.非master分支提交代码流程
  • git add .然后git commit -m "…"提交暂存区代码
  • git checkout master 然后git branch 切换到master分支并且查看是否成功切换
  • git status然后git pull 检查master分支代码状态,并且同步线上最新的master
  • git checkout xx然后git merge master切回开发分支并且合并线上master,做一个代码同步
  • 解决冲突然后git push推送代码到线上仓库对应开发分支
  • 如果推送失败可以:
    分析:可能原因是没有上游分支
    git remote -v (查看是否添加了远程仓库)
    git remote add origin + 仓库地址 (添加远程仓库)
    git branch (查看本地分支)
    git push origin + 想要推送的分支名(配置推送分支)

命令拓展

1. 配置全局或此项目 用户名、邮箱地址
git config --global user.name "xx"
git config --global user.email "xx...@qq.com"
  • 全局配置和项目单独配置的区别就是前者要加 “–global”
  • 配置文件保存的位置:C:\Users\Administrator\ 中,文件名:.gitconfig
2. git init
git init -q       静默执行
git init--quiet   静默执行
git init --bare   创建一个简单的空的目录,作为远程存储仓库
git init --template <template-directory> 目录使用模板目录;相当于复制template_dir模版仓库的目录
git init --shared[=<permissions>] 		指定git存储库将在多个用户之间共享
git init --separate-git-dir <gitdir> 	从工作树中分离git目录
  • 目录结构
    hooks目录:存放可在某些指令前后触发运行的钩子脚本(hook scripts),默认包含一些脚本样例
    info目录:存放项目信息,默认一个全局exclude文件,放置不记录在.gitignore 中的忽略模式。
    objects目录:存储所有Git的数据对象
    refs目录:存储各个分支指向的目标提交
    config文件:包含一些配置选项
    description文件:仅供GitWeb 程序使用
    HEAD文件:指定当前分支
  • git常用选项解释
    -d --delete:删除
    -D --delete --force的快捷键
    -f --force:强制
    -m --move:移动或重命名
    -M --move --force的快捷键
    -r --remote:远程
    -a --all:所有
3. git remote
git remote 查看对应的远程仓库
git remote -v 查看对应的远程仓库及URL
git remote add origin [url] 添加名称为origin 的远程仓库
git remote rm origin 删除名称为origin 的仓库
git remote set-url origin [url] 修改origin 仓库的远程地址
git remote show origin 查看远程仓库的详细信息
git remote rename old new 更改仓库名为old的名称为new
4. git branch
  • 查看分支
git branch -r 查看远程分支
git branch -a 查看所有分支(本地+远程)
git branch -vv 查看本地分支和远程分支的对应情况
git branch -v 查看各个分支最后一个提交信息
git branch --merged 查看哪些分支已经合并入当前分支
  • 新建分支
git checkout -b xxx  创建并跳转到该分支
git checkout xx  创建分支xx,但不跳转过去
  • 删除分支
git branch -d xx   删除本地分支
git push origin --delete <xx> 删除远程分支,本地同名的不会删
git branch -d -r xx  删除远程xx分支
git fetch -p  清理本地无效分支(远程已删除本地没删除的分支)

  • 重命名分支
git branch -m  <oldbranch> <newbranch>
git branch -M  <oldbranch> <newbranch>  遇到新名字已经被用过了的时候,强制修改
5. git checkout xxx
git checkout xx  切换已有分支/新建分支
git checkout -b xx创建并切换到新的分支
git checkout .   放弃工作区中全部的修改
git checkout -- filename   放弃工作区中某个文件的修改
git checkout -f   强制放弃 index和工作区的改动,不可逆
6. git add .
git add *	 添加所有文件到暂存区				
git add .	 添加所有文件
git add -u .	 添加已经被跟踪的文件修改,不包括新增加的文件
git add -A .	 已跟踪的和新增未跟踪的都添加
git add *.html  添加这个类型的文件
git add index/ 添加整个文件夹
git add index/index.html 添加文件夹下某文件
7. git stash
git stash 存储当前分支的改动到缓存区,chekcout <branch>时可优先使用, 命令后加save ‘commit’ 添加备注,方便查找
git stash list 显示stash列表
git stash show 显示存储了哪些改动,默认是第一个,如指定显示,后面加stash@{num},例:git stash show stash@{1}
git stash show -p 显示改动的文件详细信息,默认是第一个,如指定显示,后面加stash@{num},例:git stash show stash@{1} -p
git stash drop 删除存储,默认删除第一个, 可加stash@{$num}删除指定存储
git stash clear 删除所有缓存的stash
git stash apply 应用存储到git仓库,默认应用第一个,此操作不删除stash列表,应用指定存储同上
git stash pop 应用存储到git仓库并在列表删除该存储,默认应用第一个,应用指定存储同上
8. git commit -m “…”
git commit  没写后缀-m进入了vim编辑器进行信息编写
  • i : 编辑器默认不能输入,插入文字的命令i
  • Esc : 退出输入状态
  • w : 保存命令。
  • q : 退出窗口。回到最开始的命令界面。或者输入wq
git commit -a -m ‘...’   -a 参数把还没执行add命令的修改一起提交
git commit --amend 可修改上一次的提交信息,同时叠加最新修改,即两次修改只留一次提交历史
git commit -m "type(scope):subject"   提交描述信息的标准格式
  • 举例:git commit -m “feat(components):新增闹着玩儿功能”
  • type:
    feat : 新功能
    fix : 修补bug
    docs: 文档
    style: 格式
    refactor:重构
    test : 增加测试
    chore:构建过程或辅助工具的变动
  • scope: 用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
  • subject: commit 目的的简短描述,不超过50个字符。
9. git pull
git pull origin <远程分支名>:<本地分支名>  将远程指定分支 拉取到 本地指定分支上
git pull origin <远程分支名>  将远程指定分支 拉取到 本地当前分支上

10. git merge xx
git merge -m <msg> 
git merge --abort  合并后导致冲突时才使用会抛弃当前合并,尝试回到准备合并的状态。但是如果合并之前有没commit的文件,有可能无法正确恢复
git mergr --commit 合并分支并且产生一次提交(commit)有记录
git mergr --no-commit  只合并不提交,有机会处理冲突
git mergr --ff 只合并不提交,有机会处理冲突,是默认的方式
git merge --no-ff  xx  即使可以使用fast-forward模式,也要创建一个新的合并节点。这是当git merge在合并一个tag时的默认行为。
11. git push
git push origin +    想要推送的分支名(配置推送分支)
git push -u origin xx 检测目标分支是否存在,若不存在立即创建并推送
git push origin -f xx 进行强制推送
12. git reset
git reset -soft 版本号 回退到某个版本,只回退了commit 信息,不会改变已修改的代码;
git reset -hard 版本号 彻底回退到某一个版本,本地的代码也会改变为上一个版本内容。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值