Git学习小记 常用命令总结

Git命令总结

git命令众多,但是常用的就那么几个,本文章总结我练习时,常用(必用)的命令

起步

git init 初始化仓库

状态

git status查看当前的状态
git status -s 查看缩写的状态(看起来更简洁清晰)

git log 查看日志
git log --oneline 把日志呈现在一行(看起来更简洁清晰)
git log --oneline --graph以图形的方式呈现log

git diff查看修改的内容

基本操作

git add <file> 添加某个文件到暂存区(工作区–>暂存区)
git add .添加所有文件到暂存区

暂存区里的文件,需要全部提交到版本库里,才能进行版本控制
git commit -m "提交说明"提交到版本库

有时候嫌弃这个过程繁琐,可以把add 和commit用一行语句实现,一步到位(注意,只有对已追踪文件的修改,才能用。新文件还是老老实实操作吧!)
git commit -a -m"提交说明" 添加的同时,提交到版本库中

git rm <file>删除版本库中的某个文件
如果误删了,那就把版本库中的拿出来
git checkout <file>

后悔药

文件的撤销

git restore <file>撤销修改

这里有两种情况:

  • 改了,但还在工作区(没add)
  • add到暂存区了,还没提交(commit)
    都可以使用这一个命令
版本的回退

git reset 回退命令
git reset --hard HEAD^回退到上N个版本(N=^的个数)
git reset --hard HEAD~N也可以直接写N(N是个整数)
但是这样做不是长久之计,用版本号更保险
git reset --hard 版本号回退到指定版本
这个版本号怎么获取呢?
用上面提到的git log --oneline直接获取

分支管理

实际开发中,一般有个生产版本(master),还有个开发版本(dev)

基本操作

git branch 查看当前分支
git branch 分支名称 创建分支
git switch 分支名称切换分支

git branch switch -c 创建切换二合一

分支合并

git merge 分支名当前分支合并制定分支

如果有冲突怎么办?
找到冲突文件,手动修改然后用git commit -a -m"提交说明"进行提交,系统会提示冲突已经解决。

git merge --no-ff非快速合并,作为一次新的提交合并,保留分支合并信息

远程仓库

说git不说github,那就是耍流氓

首先拿到一个SHH key,看看用户目录下有没有.ssh文件夹,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果没有,则:
ssh-keygen -t rsa -C "youremail@example.com"
然后把id_rsa.pub的内容,添加到远程仓库账号里,才有资格推送东西

如果推送到一个空白的远程仓库,直接:
git remote add 远仓名 地址与远程仓库进行关联
可以关联多个仓库,只要名称不同即可,比如同时推送到github和gitee

git remote -v查看关联远程仓库信息

关联完成后,则可向远程仓库推送内容:
git push 远仓名 分支名 把你想推送的分支推送过去

如果拉取一个已有内容的远程仓库,直接:
git clone 地址

如果更新了gitignore文件,记得删除本地缓存,否则不生效

#清除本地缓存(改变成未track状态)
#git rm -r --cached . 表示清除项目中所有文件的本地缓存
git rm -r --cached xxx    #xxx表示不想版本控制的文件,比如小编可以输入test.o
                        #.gitignore中的忽略规则应该与之相对应
git add .   #添加除了忽略文件外的所有文件
git commit -m "此处可以描述你提交的信息"
git push -f #强制推送

多人协作

如果你的小伙伴,也clone了远程仓库的项目,则他只有一个master分支
如果想再拥有dev分支,则需在本地创建分支的同时加上远程分支名称,如:
git switch -c dev github/dev

但是这样还不够,你会发现这个分支的内容无法推送到远程仓库,这是因为此分支还没有和远程的dev建立链接,用下面这个语句:
git branch --set-upstream-to=github/dev dev即可建立链接

补充:如果有时突然接到一个BUG,不得不停下手中的工作,则需要保留现场
git stash保留现场,再去处理BUG
处理完事了怎么办呢,恢复现场呗!
git stash pop 把最近的一个现场恢复了。
git stash apply 现场id可以指定恢复哪个现场
这个现场id用git stash list 查看

如果刚刚解决的解决的BUG已经合并到merge上了,但是现在dev上还是存在这个BUG,怎么同步呢?
git cherry-pick <commit>即可复制无BUG内容到当前分支

以上是我在学习过程中,认为是最常见的命令,更多细节,还需不断实践,参考官方文档。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值