前言
因项目需要用到git,本文章仅作为个人记录及交流使用,以下内容为常用和实际用到的,不定时更新。
一、生成公钥
后续步骤指令都是基于SSH协议,所以最好都添加一下公钥。
生成ssh密钥可以让我们不用每次pull, push都要输入密码。
1.打开git Bash 输入你的邮箱账号:
ssh-keygen -t ed25519 -C "your_email@example.com"
回车,回车,回车,中途会提示你输入密码啥的,无视就行,直接按回车,最后会出现类似如下内容:
Your identification has been saved in /home/you/.ssh/id_rsa.
#Your public key has been saved in /home/you/.ssh/id_rsa.pub.
#The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com
2.打开#Your public key has been saved in /home/you/.ssh/id_rsa.pub 文件,复制里面所有内容。
3.登陆你的github帐户。然后 Account Settings -> 左栏点击 SSH Keys -> 点击 Add SSH key。
4.将上面复制的内容粘贴进“Key”文本域内,保存。
5.检查是否添加成功:在git bash 中输入
ssh -T git@github.com(你的git域名,有的公司购买的专有域名字不一样请注意)
如果,看到:
Hi username! You’ve successfully authenticated, but GitHub does not # provide shell access.
就表示你的设置已经成功了。
二、git 工作流
11Remote: remote Repo
Repository: Local Repo
Index: Local stage
Workspace: Local workspace
三.初始化拉取仓库相关
git init
初始化一个 Git 仓库,执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据。
2.
git remote add <http地址>
与远程仓库关联。
3.
git fetch
这将更新git remote 中所有的远程仓库(repository) 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
4.
git checkout develop
切换到develop分支
5.
git pull origin develop:develop
拉取远端到本地。
6.
git submodule init
初始化子仓库(如果有的话)
7.
git submodule update
或者git clone --recursive your-repo-url
拉取子仓库内容到本地
四.提交代码相关
git add .
添加所有文件到暂存区
git commit -m "提交说明简述"
提交到本地仓库
git push origin 本地分支:远端分支
将本地分支推送到远端分支。
五.配置相关
git config --global commit.template ./.gitcommit
配置每次commit 的时候的模板,内容在.gitcommit文件中自定义。
git config --global core.editor "code --wait"
配置GIT默认编辑器为vscode。
六.分支相关
git branch -a
列出所有本地分支和远端分支。
2.
git branch [branch-name]
新建一个分支,但依然停留在当前分支
3.
git checkout -b [branch]
新建一个分支,并切换到该分支。
4.
git branch [branch] [commit]
新建一个分支,指向指定commit
5.
git branch --track [branch] [remote-branch]
新建一个分支,与指定的远程分支建立追踪关系。
6.
git branch -d [branch-name]
删除本地分支
7.
git push origin --delete 或者git push origin (空本地分支):远端分支
删除远端分支。
七.标签相关
git tag [tag]
新建一个tag在当前commit。
2.
git push [remote] --tags
提交所有tag。
八.查看信息相关
git status
查看所有变更
2.
git log
显示当前分支的版本历史。
3.
git log --stat
显示commit历史,以及每次commit发生变更的文件
4.
git diff
显示暂存区和工作区的差异。
5.
git diff [first-branch]...[second-branch]
显示两次提交之间的差异
6.
git reflog
显示当前分支的最近几次提交。
git remote -v
显示关联的远端repo。
九.回退和合并
git reset --hard [commit]
重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致。
2.先切换到需要合并进来branch(例如develop),更新其内容,再切换到目标branch(例如master)
使用命令
git merge –-no-ff develop
将develop的内容merge到master。
三种参数详解见merge完全解析。