身份认证
SSH Key
1 $ ssh-keygen -t rsa -C "your_email@youremail.com"
会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key
用户名,密码
1 2 $ git config --global user.name "your name" $ git config --global user.email "your_email@youremail.com"
测试
分支操作
创建新分支
创建不切换
创建并切换
相当于执行
1 2 $ git branch 分支名$ git checkout 分支名
本地分支关联远程分支
只有本地分支
本地分支存在而远程分支不存在的情况:
先切换到你的目标本地分支
1 $ git checkout destinationBranchName
远程将直接生成以该名字命名的分支,并同时将本地分支与该分支关联上
1 $ git push origin theBranchNameYouWant
只有远程分支
远程分支存在而本地分支不存在:
1 $ git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
采用此种方法建立的本地分支会和远程分支建立映射关系。
回滚
从远程仓库回滚
无论是soft
还是hard
,修改了本地之后,必须强制推送远程
soft
修改版本库,保留暂存区,保留工作区
将版本库软回退1个版本,所谓软回退
表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区。
hard
修改版本库,修改暂存区,修改工作区
将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本
从本地提交回滚
从本地修改回滚
GitHub仓库
远程仓库存在
直接克隆远程仓库到本地:
然后再在本地仓库进行操作
远程仓库不存在
如果GitHub上还不存在该项目的仓库,需要将本地仓库放上GitHub:
先在GitHub上创建一个项目,但是不要初始化
将本地仓库与刚创建的GitHub项目关联,命令如下
1 $ git remote add origin git@github.com:user_name/repository_name.git
正常对本地仓库进行操作,最终通过git push
来推送到远程仓库
改变默认编辑器
Git Commit的编辑器默认是GUN nano,部分程序员用起来不习惯:
添加你的commit imformation 然后ctrl+o,回车保存,再ctrl+x退出。
我习惯使用的编辑器是Vim,于是把git commit的编辑器改回到Vim。
有如下两种方法:
方法一:
直接敲命令:
1 $ git config –global core.editor vim
方法二:
编辑~/.gitconfig文件。在core中添加editor = vim。如此以后在使用git的时候就自动使用vim作为编辑器
Linux上中文显示问题
在默认设置下,中文文件名在工作区状态输出,查看历史更改概要,以及在补丁文件中,文件名的中文不能正确地显示,而是显示为八进制的字符编码,示例如下:
1 2 3 4 5 6 7 $ git status On branch hexo Your branch is up-to-date with 'origin/hexo'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: "source/_posts/iOS\3 47\2 37\2 45\3 50\2 57\2 06\3 47\2 02\2 71\3 46\2 21\2 30\3 50\2 46\2 01.md"
通过将Git配置变量 core.quotepath 设置为false,就可以解决中文文件名称在这些Git命令输出中的显示问题:
1 2 3 4 5 6 7 8 $ git config $ git status On branch hexoYour branch is up-to -date with 'origin /hexo'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file : source/_posts/SSH-Key生成及使用.md