Git 日常使用总结

  • git 回退到之前提交的版本

git reset --hard
git reset --hard #回退到上一次的提交
git reset --hard HEAD~2 #回退到前两次提交

* git reset --hard 回滚以后,怎么再回去?
   ```
git log -g  #获取你要会退的版本的commit hash,可以通过提交的时间和日期来辨别
git reset --hard   # 通过本命令回退,之前的那个commit对应的commitid
  ```
* 是谁弄乱了我的代码?

git blame [file_name] #将文件中的每一行的作者、最新的变更提交和提交时间展示出来

* git log和git reflog的区别

git log命令可以为你展示最后一次commit
git reflog则列出了head曾经指向过的一系列commit

* 检查丢失的提交

git fsck --lost-found
你可以通过运行 git show [commit_hash] 查看提交之后的改变
git merge [commit_hash] 来恢复到之前的提交。
git fsck 相对reflog是有优势的。比方说你删除一个远程的分支然后关闭仓库。用fsck你可以搜索和恢复已删除的远程分支。

* git reset soft,hard,mixed之区别深解
其实就是--soft 、--mixed以及--hard是三个恢复等级。

--soft就仅仅将头指针恢复,已经add的缓存以及工作空间的所有东西 都不变。
--mixed,将头恢复掉,已经add的缓存也会丢失掉,工作空间的代码什么的是不变的。
--hard,那么一切就全都恢复了,头变,aad的缓存消失,代码什么的也恢复到以前状态。


* git reset 和git revert的区别

git revert是用一次新的commit来回滚之前的commit,git reset是直接删 除指定的commit
git reset 是把HEAD向后移动,git revert是HEAD继续向前进

*  git远程分支管理

添加远程分支

git remote add origin https://github.com/lvgithub/angular2-tutorials.git

修改远程地址

git remote set-url origin https://github.com/lvgithub/angular2-tutorials.git
git push origin master

删除远程分支

git remote rm origin
git push origin --delete master

推送到远程分支

git push -u origin master # -u选项指定一个默认主机,这样后面就可以不加任何参数使用git push
git push --all origin # 将所有本地分支都推送到origin主机
git push --force origin # 强制推送
git push origin --tags # git push不会推送标签(tag),除非使用–tags选项


* 配置ssh密钥

设置SSH Key

$cd ~/.ssh

如果说没有这个目录,就直接生成ssh key

$ssh-keygen -t rsa -C "email"

然后就生成一个目录.ssh ,里面有两个文件

id_rsa , id_rsa.pub,把这个SSH放到github上
用公钥,进入account-setting ,把id_rsa.pub的
内容复制进去就可以了。

测试,输入命令

$ssh -T [email protected]

在终端里输入命令

git config --global user.name "username"
git config --global user.email "email"

* https的方式,记录密码

如果想自己设置时间,可以这样做:

git config --global credential.helper cache

这样就设置一个小时之后失效

git config credential.helper 'cache --timeout=3600'

第二种方式直接配置密码到远程链接

git remote add origin http://yourname:[email protected]/name/project.git

你可能感兴趣的:(Git 日常使用总结)