关于git使用总结

本地安装git

  1. 安装
  2. 配置姓名和邮件地址(仅需配置一次即可)
git config --global user.name "Your Name"
git config --global user.email you@example.com

版本控制——git管理文件夹

  1. 进入要管理的文件夹
cd git_demo
  1. 初始化,即:让git帮助我们管理当前文件夹
git init
  1. 管理
  • 检测当前文件夹下的文件状态
    • 红色文件名,代表已有修改,但尚未暂存(即git add <文件名>)
    • 绿色文件名,代表已经暂存,但尚未生成版本(即git commit -m '<描述信息>')
git status
  • 建立跟踪 / 暂存文件
git add index.html // 对指定文件的修改建立跟踪
git add . // 对当前文件夹下修改建立跟踪

取消暂存

git rm --cached <文件>
  • 提交文件,生成版本
git commit -m '<版本描述信息>'
  • 查看版本记录
git log
git log --graph
git log --graph --pretty=format:"%h %s"
  1. 生成版本(目的)

git三大区域

  • 工作区
  • 暂存区
  • 版本库
修改文件
git add
git commit
git rm --cached <文件>
工作区
已发生修改的工作区
暂存区
本地版本库

代码回滚

  • 从3.0版本回滚到之前的2.0版本: 3.0 ==> 2.0
git reset --hard <2.0版本的版本号>
  • 回滚后版本为2.0,再要求回到回滚前的3.0版本: 2.0 ==> 3.0
  1. 查看完整提交记录,通过git reflog可以查看所有版本的版本号
git reflog
  1. 查询到3.0版本的版本号,执行回滚
git reset --hard <3.0版本的版本号>
  1. 执行完毕后,此时版本再次位于3.0

小结

在这里插入图片描述

  • 在工作区进行修改后,撤销修改
git checkout -- <要撤销修改的文件名>
  • 提交到暂存区后,撤销暂存
git reset HEAD <要撤销暂存的文件名>

分支

创建新分支

  • 查看分支(当前处于master分支)
git branch
  • 从当前所在分支master,创建一个新分支:dev
git branch dev
  • 从master分支切换到dev分支
git checkout dev
  • 创建dev分支并切换到dev分支
    如当前所在分支为master,则是从master中拆的新分支
git checkout -b dev

合并分支

将bugfix分支合入master分支
注1:操作时需要注意“谁并入谁”的问题
注2:合并时可能会产生冲突,如果冲突的话git会同时保留两个分支的内容,找到有冲突的文件,手动修改后再次git add ==> git commit即可

  • 切换到master分支
git checkout master
  • 将bugfix分支合入master分支
git merge bug

删除分支

git branch -d <要删除的分支名>

基于GitHub做代码托管

推送代码至远程仓库

添加远程连接,给代码仓地址起个别名,默认添加在本地配置文件中(--local

git remote add origin https:<代码仓地址>

将本地的master分支的代码推送到远程仓库的master分支
注1:如果未设置别名,origin也可替换为直接输入代码仓地址
注2:-u的含义为,将此次提交的地址和分支,保存为下一次推送的默认设置

git push -u origin master

将本地的dev分支的代码推送到远程仓库的dev分支

git push -u origin dev

从远程仓库克隆代码

注1:如果此时查看克隆下来的的代码分支,仅可查看到master,但实际所有分支均已拉取,可直接git checkout <分支名>切换分支
注2:克隆的同事Git内部已经实现给代码仓起别名的效果git remote add origin https:<代码仓地址>,默认别名为origin

git clone https:<代码仓地址>

从远程仓库拉取代码

从远程仓库,拉取dev分支的代码:

git pull origin dev

等同于

git fetch origin dev
git merge origin/dev

变基

简洁git commit记录
注:git rebase时可能会产生冲突,解决冲突后执行git rebase --continue即可继续

1.将多个commit记录整合为1个

将当前版本和指定版本之间的所有记录合并为一个:

git rebase -i <版本号>

从当前版本开始,找到3条记录合并为1个:

git rebase -i HEAD~3

注:合并记录时,不要合并已经push到远程仓库的记录

2.合并多个分支的commit记录

3.合并远程分支和本地分支的commit记录

beyond compare

快速解决冲突的软件。

1.安装beyond compare

2.在git中进行配置

git config --local merge.tool bc3 // 起名
git config --local mergetool.path '<beyond compare 安装路径>' // 配置安装路径
git config --local mergetool.keepBackup false // 处理冲突时不生成备份文件

注:--local意为本次配置只在当前目录内有效

3.应用beyond compare解决冲突

git mergetool

多人协同开发

GitHub创建多人协同开发项目的方式

  • 直接创建项目,然后邀请成员
  • 创建组织 --> 邀请成员 --> 组织内创建项目

tag

给提交记录上打tag

git tag -a <要打的tag,譬如v1.0.0> -m '<tag描述信息>'

将本地打好的tag推送到远程代码仓

git push origin --tags

给开源项目贡献代码

1.fork源代码

将开源项目的代码拷贝到个人远程仓库

2.在个人远程仓库修改代码

3.给源代码作者申请pull request

配置文件

  • 项目配置文件(项目/.git/config),即配置仅在当前项目内有效,如未配置,则向全局范围查找
git config --local user.name '<用户名>'
 git config --local user.email '<用户邮箱>'
  • 全局配置文件(~/gitconfig),即配置在内有效,如为配置,则向系统范围查找
git config --global user.name '<用户名>'
git config --global user.email '<用户邮箱>'
  • 系统配置文件(/etc/.gitconfig),即配置在
    注:需要有root权限
git config --system user.name '<用户名>'
git config --system user.email '<用户邮箱>'

免密登录

URL中体现

原来的地址:

git remote add origin https://github.com/<用户名>/git_demo.git

改写为:

git remote add origin https://用户名:密码@github.com/<用户名>/git_demo.git

SSH实现

  1. 本地电脑上生成公钥和私钥
    公钥默认放在~/.ssh/id_rsa.pub
    私钥默认放在~/.ssh/id_rsa
ssh-keygen
  1. 拷贝公钥的内容,并设置到GitHub中
    Personal settings --> SSH and GPG keys --> New SSH key
  2. 在git本地中配置ssh地址
git remote add origin <ssh协议地址>

配置后则无需再输入用户名和密码

git自动管理凭证

mac中可以在钥匙串中管理查看

gitignore忽略文件

git会读取项目内的.gitignore文件,文件内写明的文件名(或写明的文件夹名下的文件)不再受git管理
注:.gitignore文件也可以写入.gitignore,则该文件也不再受git管理
更多参考

GitHub做任务管理

issues

文档及任务管理

wiki

项目文档说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值