Git总结

git介绍

版本控制工具,管理项目起来相当方便,可回滚版本。

基本配置

  • 安装好后,点击开始菜单“Git”->“Git Bash”,蹦出窗口,就是安装成功

  • 绑定用户名、邮箱地址

    git config --global user.name "Your Name"(用户名)
    git config --global user.email "email@example.com"(邮箱地址)
    
  • git记住账号密码(会方便很多)

    git config --global credential.helper store
    
  • git指令显示颜色,更加有辨识度(看个人情况使用)

git config --global color.ui true
  • 配置gitignore文件,参考官方https://github.com/github/gitignore

简单使用

  • 初始化仓库,就是创建了一个版本库

    git init
    
  • 将文件提交到版本库,经历以下步骤

    1. 文件添加到版本库(暂时放在暂存区中):

      git add test.js # git add 后面跟的是想添加的文件
      #可以简化指令,将所有有更新的文件添加到版本库中
      git add .
      #或者
      git add -A
      
    2. 文件真正提交到版本库中(暂存区的修改全部提交):

      git commit -m "xxx" #xxx为文件说明
      
  • 从版本库中删除文件

    git rm <file> #<file>为文件名
    #接下来还要将提交到版本库
    git commit -m "删除file文件"
    
  • 如果你修改了某个文件的内容,可使用以下指令查看(对比版本库里的文件)

    git diff
    
  • 查看文件在工作区和暂存区的状态

    git status
    
  • 将修改的文件内容暂时缓存,不提交到版本库

    git stash  		# 把当前还未提交的内容缓存起来,等以后可继续工作
    git stash list  # 查看stash的内容
    git stash pop  	# 恢复内容同时删除 stash 的内容
    
  • 其他可能会涉及的命令

    git checkout -- file 	# 撤销工作区的修改,可使用此命令,让版本库的版本替代工作区的版本(误删除使用)
    
    git reset HEAD <file> 	# 暂存区对应文件撤销并回到工作区
    git reset 				# 暂存区全部内容撤销,并回到工作区
    

    工作区可以理解为我们在编写代码的地方

远程仓库

  • 创建SSH Key

    ssh-keygen -t rsa -C "youremail@example.com"
    

    在主目录里找到**.ssh目录id_rsa.pub(公钥)复制,粘贴到GitHub的Account settingsSSH KeysKey文本框**

  • 关联远程仓库

    git remote add origin git@github.com:(自己的GitHub账户名)/(仓库地址)
    
  • 推送到远程库(初始时)

    git push -u origin master
    

    之后可以简化指令

    git push origin master
    
  • 查看远程库

    git remote -v
    
  • 克隆远程库,拉取到本地

    git clone *** # ***为仓库地址
    
  • 拉取远程仓库最新版本(后面没带参数,默认拉取主分支)

    git pull   	# 自动合并
    git fetch	# 不自动合并,需手动merge
    

    区别在于:本地版本库里的head/分支名的commitID有没有更新

版本回退

重要

  1. 查看提交记录

    git log
    
  2. 回退版本,参数说明

    git reset
    
    --mixed # 默认,将文件回退到工作区,丢弃暂存区的文件
    
    --soft # 将文件回退到暂存区
    
    --hard # 将文件回退到修改前,丢弃工作区和暂存区的文件
    
    git reset --hard HEAD~* # 返回上*个版本
    git reset --hard *** 	# ***为commitID(随便取前几个书都可以)
    

    如果不小心回退错了,可以返回之前的版本

    git relog 				# 查看每一次操作指令
    git reset --hard *** 	# ***为操作指令的commitID
    

分支管理

多人合作开发的基础取决于分支管理

  • 创建分支,并切换到此分支

    git branch dev  	# 创建dev分支
    git checkout dev	# 切换到dev分支
    
    # 可使用一气呵成的指令
    git checkout-b dev
    

    切换到已有分支,也可以使用**git switch dev**

  • 查看当前所有分支

    git branch
    
  • 删除分支

    git branch -d dev	#dev为分支名 
    
  • 切换回mster分支,并合并

     git checkout master
     git merge dev
    

    dev分支上的内容需先提交到版本库,否则就没什么意义

  • 查看分支合并图

    git log --graph
    
  • 分支重命名

    git branch -m old new 	# old为分支旧名, new为分支新名
    
  • 有时可能需要将特定分支提交到当前分支,可使用

    git cherry-pick **** 	# "\****"为特定分支的commit id的前几位
    

合并分支

讲一下合并分支的注意点吧,通常会涉及git mergegit rebase两种指令

  • git merge

    • 解决冲突,合并分支后会形成一个新的commitID,保持在最后边

      本质上就是你提交了一个commit

  • git rebase

    • 解决冲突,合并分支后不会形成新的commitID

      手动改冲突内容,添加到暂存区后,使用了**git rebase --continue**命令,使其继续执行合并工作

    • commit记录很优雅地串成一条直线(很不利于查看有无合并过)

    • 补充些指令参数说明

      git rebase --continue 	# 继续执行rebase操作
      git rebase --abort 		# 终止rebase操作,回到rebase开始前
      

​ 两种合并命令效果不同,应用场景不同,但也不是固定的,实际想用哪个还是取决于团队。有的团队就想用rebase命令,让记录更直观、清晰,也不想有多余的记录(指生成新commitID)。

这里顺便说一下rebase的其他用处,有时我们想让几个commit合并成一个commit(为了开发规范),再合并到主分支。

git log 				# 先查看你想合并的commit
git rebase -i HEAD~*  	# 合并前*个commit

#之后进入编辑页面,将前(*-1)个commit的pick修改为s(squash),保存退出即可。

ps:使用git rebase命令后,推送到远程库需要强推,使用git push -f

标签管理

我不常用,但还是得记录一下

 git tag<name>  				# 打标签
 git tag -a <name> -m<message>  # 创建有说明的标签
 git tag 						# 查标签
 git show <tagname>				# 查看标签信息
 git tag -d <tagname>  			# 删除标签
 git push origin --tags/git push origin <tagname> # 推送标签到远程
 
 # 删除远程标签
 git tag -d <tagname> 					# 删除本地
 git push origin :refs/tags/<tagname> 	# 删除远程

git多人协作总结

仓库创建者需邀请参与人员进仓库(让其有权限推送到远程仓库上),之后参与人员通过以下步骤进行操作:

git clone git@github.com:***  		# 克隆远程库,***为仓库名
git checkout -b dev   				# 创建本地dev分支, dev为分支名

#在自己分支上开发完毕后,三部曲(add、commit、push),第一次推送可能不成功(分支还没关联到远程),按照面板的提示输入指令即可

解决冲突(这里使用merge

git pull		# 从远程库拉取最新版,在主分支上执行
git merge dev	# 合并分支,手动解决冲突,修改后记得提交到版本库
git push 		# 推送
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值