git介绍
Git是一个分布式版本控制系统,最初由Linus Torvalds为管理Linux内核开发而设计。它可以追踪文件的变化,允许多人协同工作,管理项目的不同版本,并轻松地回退到先前的版本。
git常用指令
# 下载项目
git clone xxx
# 推送代码至远程
git push origin local_branch:origin_branch
# 下载代码到本地
git pull origin origin_branch
# 添加所有改动
git add .
# 添加注释,方便以后查阅
git commit -m "xxx"
# 用于修改最新的提交
git commit --amend
# 退回某个分支(不保存现在的改动)
git reset --hard commit_id
# 退回某个分支(保存现在的改动)
git reset --soft commit_id
切换分支
切换到其他分支做一些简单的改动,本地主分支有很多改动,但是还不想添加commit,怎么样能够保存在本地。
# 保存所有改动
git add .
# 保存到暂存区
git stash
# 切换到其他分支
git checkout test1
# 修改完毕后切换会原分支
git checkout test
# 将存储的修改重新应用到工作目录中
git stash pop
# 将所有文件退回原来状态(没有add之前)
git reset
develop和release分支解决
平时都是基于develop去开发的,当develop新增部分需要同步到release时,所做操作:
- 新建一个release本地分支(release本地分支名字需要和远程分支名字保持一致)
git checkout -b release
- 找到release分支和develop分支的公共祖先-commit号
git merge-base release develop
- 回退到公共祖先
git reset --hard <commit-id>
不保留本地release分支的更改
git reset --hard origin/release
如果告知没有这个分支,进行远程分支的更新。
git fetch origin
查看修改
查看哪些文件被修改,而不是具体的修改内容,你可以添加 --name-only 选项:
git diff --name-only <branch_name>
如果你想查看当前工作目录和最近一次提交之间的差异,你可以使用以下命令:
git diff
这个命令会显示当前工作目录和最近一次提交之间的差异。
统计新增文件(暂存区尚未提交)
git diff --cached --name-status | grep '^A' | wc -l
每一行的开头是一个字母,表示对应的文件的状态(A 表示新增,M 表示修改,D 表示删除)
差异同步
想将develop上最新commit的数据新增及更改同步到release分支上,需要做什么操作。(当前处于develop分支)
- 切换到release分支
git checkout release
- 将commit节点应用到当前分支
git cherry-pick commit1
- 如果出现冲突,需要手动解决冲突,使用
git add将解决冲突的文件添加到暂存区,最后使用git cherry-pick --continue命令继续应用提交。 - 撤销提交,使用
git cherry-pick --abort命令撤销。
github配置
配置SSH公钥,可以免去每次输入密码的繁琐操作。
1.什么是SSH公钥?
SSH(Secure shell)是一种登录远程计算机并执行命令的加密协议。 SSH公钥是一对密锁中的公钥,用于加密数据,而对应的私钥则用于解密数据。
2.为什么使用SSH公钥?
- 安全性高:密钥长度更长,不易被破解。
- 提高效率:每次操作无需重复输入密码。
- 集中管理:可以在多个设备上使用相同公钥进行身份验证,方便管理。
3.如何生成连接到github?
- 打开Git Bash,输入一下命令生成SSH密钥对
ssh-keygen
- 一直按回车键确认默认保存路径。(可以在shell中查看到具体的文件路径)
Your public key has been saved in xxx/.ssh/id_rsa.pub
- 到指定目录复制id_rsa.pub的文件(直接复制不换行)
- 到github-settings-SSH and GPG keys
- 点击 New SSH key,title里面协商标题,key上粘贴,点击“Add SSH key”按钮添加完成。
