github命令

创建版本库

$ mkdir name //创建了一个空目录

$ git init //变成git可以管理的仓库

注意:使用Windows,千万不要使用自带的记事本编辑任何文本。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为保存UTF-8编码的文件,他们在每个文件开头家里0xefbbf的字符,你会遇到很多不可思议的问题,比如网页第一行可能会显示一个“?”。明明正确的程序一编译就会报语法错误,等等。

$ git add name.txt //把文件添加到仓库里

$ git add . //添加当前目录下的所有文件到暂存区

$ git commit -m “注释” //把文件提交到仓库,-m后面输入本次说明

$ git status //掌握仓库当前状态
clone
下载分支

git clone -b 分支名 网址.git

删除文件

$ git rm name.txt //删除具体文件

$ git rm -r name //删除文件目录

版本回退

$ git log //查看历史记录

$ git reset --hard HEAD^ //回退到上一个版本

$ git reset --hard 1234567 //指定回到未来的某个版本,1234567时commit id。

$ git reflog //用来记录以前的以前提交的版本,可以找到commit id。

$ git checkout – name.txt //我理解的就是把name.txt文件在工作区的修改全部撤消,和暂存区保持一致。

$ git reset HEAD name.txt //把暂存区name.txt或者换成*,就是全部修改撤销,重新放回工作区

远程库

$ git clone git@192.168.120.200:bios05/FT-2000Plus-S-KaiFaBan-ACPI-20191125.git //克隆项目

$ git push -u origin master //把本地缓存区的所有内容推送到远程库上

$ git push origin master //推送修改的内容,如果把master修改成其他分支,就推送到其他分支

$ git pull //更新

分支管理

$ git branch //查看分支

$ git branch name //创建分支

$ git checkout name //切换分支

$ git checkout -b name //创建并切换分支

$ git merge name //合并某分支到当前分支

$ git branch -d name //删除分支

遇到冲突时,只能先解决冲突。

$ git merge --no-ff -m “说明” 分支名 //合并分支,强制禁用”fast forward”

$ git log --graph --pretty=oneline --abbrev-commit //可以看到分支合并图

$ git stash //储存工作区现场

$ git stash list //列出来保存的工作现场

$ git stash pop stash@{数字} //恢复数字的工作现场,并删除list

$ git stash apply stash@{数字} //功能如上,但是不删除list

$ git stash drop stash@{数字} //删除list数字的工作现场

$ git branch -D 分支名 //强行删除某分支

标签管理

$ git tag v1.0 //打标记

$ git show v1.0 //查看标记

$ git tag -d v1.0 //删除标签

$ git push origin V1.0 //推送某标签到远程

$ git push origin --tags //一次性推送本地全部标签

$ git tag -d V1.0 //先删除本地标签

$ git push origin :/refs/tags/V1.0 //再删除远程标签

配置别名

$ git config --global alias.co checkout //把checkout配置为co

撤回push

https://juejin.cn/post/7136171249809489934
1.执行 git log 查看提交日志,获取需要回退的版本号 ID
2. 执行 git reset –-soft <版本号> ,如 git reset --soft 9d8c980edacd71410ed655,重置至指定版本的提交,达到撤销提交的目的
3. 然后执行 git log 查看提交日志
4. git push -f
如果遇到被保护的分支,需要解保护。参考如下文章
https://github.com/shaobeichen/blog/issues/11

Patch

两个commit号之间的不同生成patch文件

git format-patch -1 commit1 commit2

cherry-pick命令

基础语法如下

git cherry-pick <commit>

前提:首先是同一套代码,不同的分支,才用这个命令。
用法:输入命令后,主要是会出现很多冲突需要解决。先git status看冲突的状态,下面是我遇到的冲突类型和解决方式。
第一种:这个文件中的语句出现冲突。

both modified

可以打开这个文件并修改。
可以有时候遇到二进制文件不好手动修改,就需要以下命令

保留当前分支(ours)版本:
git checkout --ours <file>
保留合并分支(theirs)版本:
git checkout --theirs <file>

解决完后,需要

git add <file>

第二种:这个分支没有这个文件

deleted by us:

直接使用命令,要么删除,要么添加

git rm <file>
git add <file>

两种冲入解决完之后,可以检查以下命令检查是否还有问题。

git status
git cherry-pick --continue

最后commit并push就可以了
参考文章:https://www.jianshu.com/p/f3805a55c2ec
https://blog.csdn.net/jam_yin/article/details/131594716

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值