Git 使用总结

/*==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#

误删本地文件后恢复

  1. git status //查看被删文件信息
  2. git reset HEAD [被删的文件或文件夹] //例如 $ git reset HEAD . 当前文件夹
  3. git checkout [被删的文件或文件夹]

或者

$ git log --diff-filter=D --summary

$ git checkout 982e3311b299c39d668d9da96fedb9a9c7990799~1 测试2.txt //标红为查出的commit号

上面命令,找回来的文件状态是:上一次commit时候的状态

 

6、合并冲突

两个分支都有该文件,但内部代码不一致,此时合并就会产生冲突,将冲突代码整理后,commit 然后 push即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值