git基本操作命令和扩展知识

git基本操作命令和扩展知识_第1张图片
git.png

git官方下载链接

git常用基本命令

  • 初始化git
git init;
// 告诉git ‘我’ 是谁
git config --global user.name '三脚猫';
git config --global user.email '[email protected]';
git config --list         查看个人信息
  • 关联远程库(github)
【添加远程地址库】git remote add origin http://github.com/superhaohao
【查看当前远程库地址】git remote -v;
【克隆远程库代码】git clone http://github.com/superhaohao 
【克隆指定远程库代码】git clone -b xxx .git地址
// 克隆完然后...有弹窗需要打上码云或者github的账户和密码
【修改远程仓库】git remote set-url origin [email protected]/in.git
【删除远程仓库】git remote rm origin;
  • 分支操作
【查看分支】git branch;  (带*的是当前分支)
【查看所有分支】git branch --all;
【创建分支】git branch (分支名);
【创建分支并移动到里面】git checkout -b (分支名);
【删除分支】git branch -d (分支名);
  • 代码合并基本命令 (7步操作)
【1.拉取代码】git fetch;  (拉取到缓存区,还需要手动合成代码)
【2.合并代码】git merge (远程分支名);  eg:  git merge origin/master;
【3.查看冲突】git diff;
【查看所在分支】git branch; 
【查看所有分支】git branch --all;
【切换分支】git checkout (分支名);
【移动到某分支】git checkout (分支名);
【4.添加到缓存】git add .;   (.是指所有文件)
【撤销缓存】git reset ;   (是指定或者不加是全部)
【5.查看缓存状态】git status;
【6.版本说明】git commit -m '网站v2.0版本'
【撤销版本】git reset --hard (commit_id); (id用git log查看)
【7.推送代码】git push origin (本地分支名):(远程分支名);
  • git后悔药
【查询版本】git log;   (查看版本号)
【回退版本】git reset --hard HEAD^;    (回退到上一个版本,ps: 上上个版本就是 HEAD^^)
【回退指定版本】git reset --hard 3628164;  (翻上面log命令,复制commit id加密字符串前几位都行)
【关机后悔药】git reflog; (查询git history命令找到你回退指定版本的commit id 。再次回退)
  • git添加多个远程地址,1拖2
其实我们在git remote add的时候 `origin` 就是一个名称而已,我们只需要修改成别的
【添加第二远程库】git remote add mirror http://github.com/superhaohao
【查一下是否成功】git config --list;
这时候你能看到有两个地址`remote.mirror.url=`和`remote.origin.url=`

'坑:需要注意的是,当你推送同一个项目不同地址的时候,记得分别两个地址都推送一遍,
不然就会出现版本跨越,就需要用到下面的方法去解决'
  • git我最喜欢的粗暴的命令

如果1拖2origin的时候,有时候会忘记推送一个库。下次推送就跨越了版本git报错无法推送,我们需要一些简单粗暴的办法~!

【强行拉取】 git fetch --all
【强行指定版本】 git reset --hard origin/master 
【强行合并】 git pull origin master
  • 如何生成ssh公钥
【选择目录】cd ~
【生成ssh】ssh-keygen -t rsa -C "[email protected]"
 // 三次回车即可生成 ssh key
【查看秘钥】cat ~/.ssh/id_rsa.pub
 // 添加后,在终端(Terminal)中输入
【查看状态】 ssh -T [email protected]
 // 返回:Welcome to Gitee.com, yourname! 表示成功
  • 编写自定义git命令
【git st】git config --global alias.st status
【git ci】git config --global alias.ci commit
 # eg:git ci -m " - test:xxxxx"
【git lg 编写】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"
【查看alias别名配置】cat .git/config
  • 移除远程库提交的git文件
【删除远程文件】git rm -r --cached images 
# 执行完上面推一遍代码: git commit -m "delete images/"   git push origin master
关于 .gitignore 的忽略文件的推送

遇到没有自动生成.gitignore的项目,需要后面自己配置上过滤文件
总结来自:CSDN - .gitignore忽略文件的推送

【创建文件】touch .gitignore
【添加过滤】vim .gitignore
/node_modules
/storage/*.key
/config/database.php

【查看git配置】cat .git/config
【识别配置文件】git config core.excludesfile .gitignore
【删除git本地缓存】git rm -r --cached .
// .gitignore只能忽略原来没有被跟踪的文件,
解决方法就是先把本地缓存删除

问题

  • git cherry-pick找回之前某个版本的修改内容,多人协作时候有人覆盖了版本
首先查看自己的文件`nothing to commit, working tree clean`
【”挑拣”提交】git cherry-pick [版本号]
【拉取一下最新的代码】git pull origin master
【提交代码】git push origin test:master

纯手打代码,希望能帮助大家;

你可能感兴趣的:(git基本操作命令和扩展知识)