前言
这是自己很久之前做的一些git相关的笔记,现在有博客了就放到这里来,也方便查阅。主要记录一下平常使用git时会用到的命令和技巧,因为自己经常会忘记,所以就记录下来。之后若是遇到其他git相关的问题,也会记录在这里。
连接github
-
首先检查SSH key 是否存在
输入ls -al ~/.ssh
命令,如果有文件id_rsa.pub
或id_dsa.pub
文件,则证明已存在SSH key,无须生成新的SSH key。 -
生成新的SSH key
输入命令ssh-keygen -t rsa -C "your_email@example.com"
,后面的步骤可根据提示完成。 -
将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次的提交信息
然后将需要修改的log前面的pick
改为edit
,:wq
退出。
再执行git commit --amend
就可以修改提交信息了,修改完后再执行git rebase --continue
。
最后再将git push origin <branch_name> -f
。