前言

这是自己很久之前做的一些git相关的笔记,现在有博客了就放到这里来,也方便查阅。主要记录一下平常使用git时会用到的命令和技巧,因为自己经常会忘记,所以就记录下来。之后若是遇到其他git相关的问题,也会记录在这里。

连接github

  1. 首先检查SSH key 是否存在
    输入ls -al ~/.ssh命令,如果有文件id_rsa.pub id_dsa.pub文件,则证明已存在SSH key,无须生成新的SSH key。

  2. 生成新的SSH key
    输入命令ssh-keygen -t rsa -C "your_email@example.com",后面的步骤可根据提示完成。

  3. 将SSH key添加到GitHub。

测试是否连接到GitHub

ssh -T git@github.com

查看git配置

全局配置:git config --global -l
仓库配置:git config --local -l

配置git信息

设置全局的username和email
git config --global user.name "your_name"
git config --global user.email "your_email"
设置仓库的username和email,只要先进到git仓库,然后将上述命令中的--global参数去掉就可以了。

git 撤销 commit

先执行git log找到需要回退到那次commit的哈希值 git reset <option> commit_id
option参数有三种:
--hard: 彻底回到某个版本,不保留修改的代码。
--mixed: 不带参数时的reset方式。回退commit和index信息,保留修改的源码到工作区。
--soft:回退commit和index信息,并将修改的代码保存到暂存区,如果需要再次commit,直接执行commit即可。

如果使用了reset --hard回到过去,你会发现git log命令输出的最新的commit信息就是当前回退到的版本,而你之前的最新的commit信息已经找不着。

如果你的命令行中还留有之前最新的commit的hash值的话,可以直接git reset回去。

没有记录或者不记得也没关系,能回到过去就能回到未来,可以执行git reflog查看命令历史,找到之前的commit的hash,就可以回到最新的commit。

删除暂存区的文件或文件夹

git rm --cache path/to/file执行这行命令就会把暂存区里面的文件删除掉,但仍保留在本地。

如果要删除文件夹,就加上-r参数,git rm -r --cache path/to/dir

修改提交信息

一般如果只是修改最近一次提交信息的话,直接执行git commit --amend就可以了。

如果是修改历史的提交信息,先git rebase -i HEAD~10,这里10代表最近10次的提交信息

git rebase

然后将需要修改的log前面的pick改为edit:wq退出。

再执行git commit --amend就可以修改提交信息了,修改完后再执行git rebase --continue

最后再将git push origin <branch_name> -f

相关阅读

Git生成并配置多个SSH key