/*==SSH==*/
$ ssh-keygen -t rsa -C "adonisxxxx@xxx.com"
把生成的ssh.pub复制到GitHub网页;
/*==查看==*/
git branch -r //查看远程分支
git branch -a //查看所有分支
git config user.email //查看用户名
git config user.name //
git remote -v //查看传输协议
git log --diff-filter=D --summary //查看commit提交了哪些删除操作
git log --author="xxx" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
// 查看代码行数
/*==创建&&切换==*/
git branch <branch> //本地创建新分支
git checkout <branch> //切换新分支
git checkout -b <branch> //创建然后切入该分支
git checkout -b <branch> //本地创建新分支,
git push origin <branch> //提交该分支到远程仓库
/*==拉取==*/
git clone git@github.com:Adonis-D-Gogh/spring-boot.git
/*==提交==*/
git add . // 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件
git commit -m "first commit" // 把添加的文件提交到版本库,并填写提交备注
git push origin <branch> //推送新分支到远程
git remote add origin 你的远程库地址 // 把本地库与远程库关联
git push -u origin <branch> // 第一次推送时
git push origin <branch> // 第一次推送后,直接使用该命令即可推送修改
git commit --amend //修改最后一次提交
/*==删除==*/
git branch -d <branch> //删除分支
git push origin :<branch> //删除远程分支 ‘:’代表删除
/*==合并==*/
git merge <branch> //合并指定分支到当前分支
/*==回退==*/
回退命令:
$ git reset --hard HEAD^ //回退到上个版本
$ git reset --hard HEAD~3 //回退到前3次提交之前,以此类推,回退到n次提交之前 $ git reset --hard commit_id //退到/进到 指定commit的sha码 例如 33bacf102cdcb860c5a8d474612b67fc9eebb479
执行 git fetch //fetch 比pull少了一步merge
强推到远程:
$ git push -f origin <branch> //回滚后强推,一般push会提示先pull;强推会清除该版本之后的记录,慎用!!
$ git push origin HEAD --force
/*==key==*/
1、删除当前key,然后重新生成key
$ ssh-keygen -t rsa -C "xxxx@qq.com"
2、会在 /.ssh 路径下生成id_rsa 和 id_rsa.pub
复制id_rsa.pub的内容,去github新生成一个ssh key
/*==用户==*/
git config --global user.name "yourname"
git config --global user.email "your@email.com"
/*==遇到问题==*/
1、若执行ssh-add /path/to/xxx.pem是出现这个
错误:Could not open a connection to your authentication agent,
则先执行如下命令即可:
ssh-agent bash
2、known_hosts的作用
客户端公钥记录文件(known_hosts)
登陆到服务器时,比对服务器公钥与客户端记录是否一致,防止伪造的服务器。
如果遇到 Permission denied (publickey).
可以清空该文件,此时再push时会提示,是否记录该信息 如下:
The authenticity of host 'github.com (xx.xx.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
yes即可记录入该文件中(known_hosts)
3、key 小乌龟与git
使用小乌龟和git bash here有一定区别,小乌龟我使用了Pageant key List来读取key;
git直接使用对应存的用户名
4、merge之后想撤销
- 回退到某一已提交的版本,参考 /*==回退==*/
5、变更与删除 相关问题
#1#
只变更(包括删除)文件后git commit -m,然后push时提示 Everything up-to-date
原因:
要提交新版本a.txt,即内容为'a'的a.txt,则需要使用git add a.txt,将新版本的a.txt放到staged暂存区,然后才能使用git commit -m进行提交
而如果使用git commit -am,则可以省略git add a.txt这一步,因为git commit -am可以提交跟踪过的文件,而a.txt一开始已经被跟踪过了
- 参见:git commit -m 与 git commit -am 的区别
https://segmentfault.com/q/1010000005900988
- Aborting commit due to empty commit message git 提交
原因:提交空信息被终止了提交
解决:git commit -a 然后输入注释信息即可
#2#
误删本地文件后恢复
- git status //查看被删文件信息
- git reset HEAD [被删的文件或文件夹] //例如 $ git reset HEAD . 当前文件夹
- git checkout [被删的文件或文件夹]
或者
$ git log --diff-filter=D --summary
$ git checkout 982e3311b299c39d668d9da96fedb9a9c7990799~1 测试2.txt //标红为查出的commit号
上面命令,找回来的文件状态是:上一次commit时候的状态
6、合并冲突
两个分支都有该文件,但内部代码不一致,此时合并就会产生冲突,将冲突代码整理后,commit 然后 push即可。
2766

被折叠的 条评论
为什么被折叠?



