git命令汇总

172 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

前言

  • git是代码版本管理工具,大型项目需要多人协作开发,必须使用git,我们需要对其有基本的掌握
  • git服务器常见的有GitLabcoding.net(码云)

推荐

Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

常用命令汇总

  • git add .
  • git checkout xxx(撤回)
  • git commit -m "xxx"
  • git push origin master
  • git pull origin master
  • git branch
  • git checkout -b xxx
  • git merge xxx
  • git log
  • git config(配置)
  • git stash(把当前要改的搁置在一个区域)
  • git stash pop(把暂存的修改推出来)
  • git reset --soft HEAD^   ( 已经git commit一次提交,但是想撤销commit这次提交,且保留代码不变)

HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

关于参数:

–mixed

意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作

这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

–soft

不删除工作空间改动代码,撤销commit,不撤销git add .

–hard

删除工作空间改动代码,撤销commit,撤销git add .

注意完成这个操作后,就恢复到了上一次的commit状态。

VS Code执行git操作

其实,基本的提交代码、拉取代码、合并代码在VS Code中就可以实现 vs code  git操作.png

详细命令汇总

  1. 初始化git仓库:
git init
  1. 向仓库(暂存区即.git的stage)添加文件:
git add <file>
-f强制添加

后为文件名,” . ”为全部

  1. 向仓库(分支)提交文件:
git commit –m

修改提示信息

  1. 查看仓库当前状态:
git status
  1. 查看修改内容:
git diff
  1. 查看提交日志:
git log

加上--pretty=oneline参数,只查看修改内容

  1. 版本回退(暂存区):
git reset --hard HEAD^

HEAD为当前版本,HEAD^为上一版本

  1. 倒回被回退的版本:
git reset --hard 版本号(不必写全,大概前四位)
  1. 查看每一次命令:
git reflog(带有版本号)
  1. 撤销操作(工作区):
git checkout --文件名
  1. 删除文件:
git rm
  1. 推送:
git push –u origin master

-u将本地和git上的master关联

  1. 查看远程库信息
git remote -v
-v更详细信息
  1. 删除远程库(解除本地与远程之间的联系)
git remote rm origin 
  1. 将本地仓库的内容推送到GitHub仓库
git remote add origin git@github.com:michaelliao/learngit.git
  1. 将远程库clone到本地
git clone
  1. 切换当前分支
//git checkout 分支名
//-b参数创建并切换分支
//推荐
git switch
-c参数,创建并切换分支
  1. 创建分支
git branch 分支名
git branch 查看当前分支
  1. 合并分支
//先切换到合并的分支
git checkout 分支名(master)
//合并被合并的分支
git merge 分支名

git merge --no-ff -m "merge with no-ff" dev
--no-ff禁用fast forward模式
-m提交一次commit
  1. 删除分支
git branch -d 分支名
-D强行删除
  1. 查看分支合并图
git log graph
  1. 保存当前工作状态
git stash
  1. 查看stash
git stash list
  1. 恢复工作现场
git stash apply
//恢复后,stash内容并不删除,你需要用git stash drop来删除;

git stash pop
//恢复的同时把stash内容也删了
  1. 复制一个特定的提交
cherry pick commit序号
  1. 合作一起push有冲突时
先git pull,在合并分支,再push
若是git pull时发生错误
git branch --set-upstream-to=origin/dev dev
再pull,再合并,若有问题,手动解决
  1. 直线提交
git rebase
  1. 打标签(默认给最近一次的commit打标签)
git tag 标签名 commit id

$ git tag -a v0.1 -m "version 0.1 released" 1094adb
用-a指定标签名,-m指定说明文字
  1. 查看标签信息
git show 标签名
  1. 删除标签
git tag -d 标签名
  1. 推送某个标签到远程
git push origin 标签名
--tags推送全部标签
  1. 从远程删除标签
//先在本地删除
git tag -d 标签名
//再从远程删除
git push origin :refs/tags/v0.9
  1. 检查.gitignore文件错误
git check-ignore
  1. 显示最后一次提交信
git last
  1. 配置别名
    别名在.gitconfig或.git/config文件下
git config --global alias.st status

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
  1. 搭建git服务器
//第一步,安装git:
//假设你已经有sudo权限的用户账号
$ sudo apt-get install git

//第二步,创建一个git用户,用来运行git服务:
$ sudo adduser git

//第三步,创建证书登录:
//收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个

//第四步,初始化Git仓库:
//先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git
$ sudo chown -R git:git sample.git

//第五步,禁用shell登录:
//出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

//第六步,克隆远程仓库:
$ git clone git@server:/srv/sample.git

要方便管理公钥,用Gitosis
36. sourceTree的使用
sourceTree是Git图形界面管理工具

  • 直接从资源管理器把文件夹拖拽到SourceTree上,就添加了一个本地Git库
  • 也可以选择“New”-“Clone from URL”直接从远程克隆到本地

最后

汇总完毕,我个人把这篇当做笔记,各位也可以收藏以备查询(吃灰bushi)。

开心.webp