git笔记

1. detached HEAD

http://blog.csdn.net/csfreebird/article/details/7583363

使用 git checkout master  

 

2. rebase 和 mearge

http://blog.csdn.net/wh_19910525/article/details/7554489

 

 

3. 撤消本地所有修改(未commit)

git clean -df 

git checkout  --force  dev

git reset --hard  origin/dev

 

4. 撤消 commit

  a)git log

  b)git reset --hard commit_id

 

http://blog.csdn.net/felix_f/article/details/8777463

 

 

 

在这个图中,我们可以看到部分 Git 命令是如何影响工作区和暂存区(stage, index)的。
  • 图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。
  • 图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个“游标”。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
  • 图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,我们会在后面的章节重点介绍。
  • 当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID 被记录在暂存区的文件索引中。
  • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
  • 当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
  • 当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工作区则不做出改变。
  • 当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
  • 当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改 动。

 

撤消本地修改--强制切换到当前分支:

   git checkout HEAD .

 

撤消本次修改--对于未提交的,撤消。

git reset --hard


撤消已Push 的某次Push。

 
http://blog.csdn.net/qqxiaoqiang1573/article/details/68074847 

 

统计 

http://blog.csdn.net/qq_37023538/article/details/53930200

 

Git 子模块的权限控制

https://git-scm.com/book/zh/v2/Git-工具-子模块


https://juejin.im/post/5aa11f486fb9a028e0140e34

 

Git 忽略文件权限的配置

配置: core.filemode = false

https://my.oschina.net/surjur/blog/401757 

 

回车格式设置

git config --global core.autocrlf true

把  --global 去掉, 即设置到当前项目.

 

删除远程文件:

http://blog.csdn.net/xing_sky/article/details/50069617

使用 git rm 命令即可,有两种选择.

         一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除;

         一种是 git rm --f "文件路径",不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)

 

配置SSH Key

 https://www.cnblogs.com/horanly/p/6604104.html

https://www.putty.org/

ssh-keygen -t rsa -C "youremail@example.com" -f ~/.ssh/id_rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22  root@server_ip

ssh-copy-id 的作用是: 把id_rsa.pub的文件内容copy到服务器 ~/.ssh/authorized_keys

其它生成工具: http://www.cnblogs.com/pixy/p/4722381.html

配置多个 密钥:https://blog.csdn.net/dbb_zifeng/article/details/71698865

 添加到 agent:

ssh-agent bash
ssh-add 13466496863
ssh-add iamudi

 

vi ~/.ssh/config

Host gitee2.com
    HostName gitee.com
    IdentityFile ~/.ssh/iamudi
    User iamudi@163.com

Host gitee.com
    HostName gitee.com
Port 22 IdentityFile
~/.ssh/13466396863 User 13466396863@163.com

 

git clone git@gitee2.com:iamudi/inv.git

 

重置远程,删除远程历史

https://blog.csdn.net/ffggnfgf/article/details/80044943

 

 git checkout --orphan latest_branch

git add -A

git commit -am "init"

git branch -D master

git branch -m master

git push -f origin master

 

posted @ 2017-04-22 10:24  NewSea  阅读(297)  评论(0编辑  收藏  举报