0%

git note

git创建公钥

1
2
3
4
5
#设置git用户签名
git config --global user.name 用户名
git config --global user.email 邮箱
#生成公钥,可以默认连续回车
ssh-keygen -t rsa -C "邮箱号"

git提交流程

1
2
3
4
5
6
#添加到暂存区域
git add .
#提交到本地分支
git commit -m "注释"
#提交到远程仓库
git push -u origin 分支

git回退提交版本

1
2
3
4
5
6
7
8
#查看提交日志
git log
#简化输出信息
git log --pretty=oneline
#查看每一次命令
git reflog
#回退版本
git reset --hard 版本id

git拉取远程分支代码到本地

1
2
3
4
5
6
7
8
9
10
#查看远程仓库
git remote -v
#获取远程仓库最新版本代码
git fetch origin main:temp
#查看temp分支与本地原有分支不同
git diff temp
#将temp分支和本地分支合并
git merge temp
#删除temp分支
git branch -d temp

git分支管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#查看本地分支
git branch
#创建本地分支并切换到分支
git checkout -b branch
#创建分支
git branch 分支名称
#切换分支
git checkout 分支名称
#将分支合并到当前分支,先git checkout当前分支,然后在git merge需要合并的分支
#也可以远程新建分支然后拉到本地
git checkout -b dev origin/dev
#查看所有本地仓库分支和远程分支
git branch -al
#提交本地分支到远程分支,本地分支和远程分支相同时不需要冒号直接写dev就可以
git push origin dev:dev
#删除远程分支
git push origin --delete dev
#也可以push一个空分支到远程分支,其实就相当于删除远程分支
git push origin :dev #推送本地的空分支(冒号前面的分支)到远程origin的dev(冒号后面的分支,没有会自动创建)
#把某个分支上的内容拉去到本地
git pull origin dev(远程分支名称) #会把本地当前的分支和远程dev分支自动合并

git撤销对远程仓库的push&commit提交

1
2
3
4
5
6
7
8
9
#查看日志,获取回退版本号
git log
#执行回退命令,有两种,--soft 和 --hard,区别是soft只是改变了HEAD的指向,本地代码不会变,hard直接会改变本地代码,不仅指向改变,代码也回到了那个版本的样子
git reset --soft 版本号
git reset --hard 版本号
#强制提交当前版本号
git push origin 分支名 --force
#撤销commit,同样查看需要撤销的commit的前面一个提交版本id
git reset --hard commit_id

git设置忽略文件,处理之前已经传过的需要忽略的文件

1
2
3
4
#.gitignore只能忽略原来没有被跟踪的文件,因此跟踪过的文件是无法被忽略的.解决方式就是先把本地缓存删除(改变成未track状态),然后再提交
git rm -r --cached .
git add.
git commit -m "update xx"

同时在一个分支上操作

1
2
3
4
5
6
#本地发生改动的文件保存一下
git stash
#远程的代码同步到本地
git pull origin dev --rebase
#本地保存的文件弹出,继续修改
git stash pop

ssh配置文件

1
2
3
4
Host github.com
Hostname ssh.github.com
Port 443
User git

测试git连接

1
ssh -T git@github.com