Git操作

本文详细介绍了Git的基本操作,包括初始化、添加、提交、查看状态、日志、重置,以及如何删除和恢复文件。同时,讲解了分支管理、远程仓库的别名设置、推拉操作和多人合作中的冲突解决。还提到了SSH免密操作,确保顺畅的远程协作体验。
摘要由CSDN通过智能技术生成

概述

团队内部合作:
在这里插入图片描述
跨团队合作:
在这里插入图片描述

init

在想要管理的目录下右键Git Bash Here,输入命令git init,则出现一个.git文件夹,其中保存了各种相关信息

add

// 将文件从当前工作区add到暂存区
git add 文件名

commit

// 将文件从暂存区commit到本地库,并且自定义更新提示
git commit -m "描述更新了哪些内容" 文件名

status

// 显示当前工作区内的文件各属于什么状态
git status 

log

// 由近及远显示commit记录
// 当历史记录过多时,会默认分页显示:按空格到下一页,按b到前一页
// 每条历史记录对应一个唯一索引(hashcode)
git log

// 每条记录只显示一行,更加简洁
git log --oneline

// {}内的数字,代表回到这个版本需要走多少(hashcode只保留末尾几位)
git reflog

reset

// 前进或回退到指定索引版本
// hard相等于本地库的指针
git reset --hard 某条历史记录的索引

删除暂存区和本地库的文件

// 1.先删除工作区的文件
rm 文件名
// 2.将修改同步到暂存区(等价于删除暂存区的该文件)
git add 文件名
// 3.同理,将修改同步到本地库(等价于删除本地库的该文件)
git commit -m "删除文件" 文件名

找回已删除的文件

相当于回退到删除之前的版本(reset)

diff

// 对比某文件在工作区和暂存区的差异
// 逐行比较
git diff 文件名

// 不指定文件名,即对比所有文件
git diff

// 对比某文件在暂存区和指定索引版本的差异
git diff 索引号 文件名

branch

// 查看当前所有分支
git branch -v

// 创建新分支
git branch 新分支名

// 切换到指定分支
git checkout 分支名

// 合并指定分支到当前分支
// 通常创建一个新分支,在新分支上增添新功能并add,commit,最后再合入master
git merge 分支名

远程仓库地址别名

// 查看别名
git remote -v

// 设置别名:之后就可以使用别名替代远程库地址了
// 这里要用ssh地址不要用https地址,否则在push的时候会卡死
git remote add 别名 远程库的URL

// 删除别名
git remote rm 别名

push

// 第一次加上-u参数,之后就无需-u参数了
git push -u 远程仓库别名 本地想要推送的分支

clone

// 其他人可以从远程库上克隆下
// clone结束后,会自动完成init和起别名操作(默认origin)
git clone 远程库的URL

多人合作

主人可以在GitHub上邀请其他人进入团队:
在加入团队后,就被允许将自己的代码push到远程库

在这里插入图片描述

pull

git pull 远程库别名 想要拉取的远程库分支


// 如果为了保险,可以采取分开操作的方式:pull = fetch + merge
// 抓取远程仓库的某个分支到本地,但并不会修改本地的工作区
git fetch 远程仓库别名 远程仓库的某个分支
// 可以先查看远程库中的文件内容是否正确,再决定是否合并
git checkout 拉取下来的远程库分支
cat 文件名
// 将抓取下来的分支合并到本地(合并前记得切换回本地的分支)
git merge 远程库分支名

注意:
如果多人合作,A修改了f.txt的第一行,并push到远程库;B也修改相同位置,那么push会失败!
此时B只能先pull下来,解决了冲突(该删删该留留),再push上去;
在解决冲突时,commit不能指定文件名,否则提交失败

ssh免密操作

// 进入用户主目录
cd ~   
// 生成ssh密钥:C要大写,邮箱是github注册的那个邮箱
ssh-keygen -t rsa -C 邮箱地址
// 三次回车确认后,在C盘-用户-Administrator-.ssh文件夹下包含id_rsa和id_rsa.pub文件
// 复制id_rsa.pub里的字符串到github-个人主页-右上角setting-SSH and GPG keys-New SSH key-key处,title随便取
// 在本地库对远程仓库的ssh地址取个别名,之后push操作时,就无需每次都登录账号密码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值