git用法

创建版本库(repository)

$ mkdir firstry

$cd firstry

$git init 

$vi readme.txt

$git add readme.txt

$vi readme1.txt

$git add readme1.txt

$git commit  -m 'I write two flies'

PS:git init就相当于为当前状态的文件夹建立一个指针链表,主要用来追踪文件的状态,同时可以回退,还原等

     在git init之后,在文件夹中添加文件,只有在git add ,git commit后才有效

     git commit可以一次性提交所有已经add了的文件

     add和commit区别见下图,add后只是进入了stage区,commit后才链入respository(注意是在master分支下的)

图片来自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013745374151782eb658c5a5ca454eaa451661275886c6000

 

保存修改

 $vim readme.txt

//修改内容

$git status

$git add readme.txt

$git status

$git commit  -m 'readme modified'

$git status

PS:git status用来显示当前git库的状态(上述三图分别表示了三种状态)

 

SSH连接

$  ssh-keygen -C 'your email' -t rsa

//之后询问rsa公钥私钥的储存位置,enter即可

$cat  /root/.ssh/id_rsa.pub

//显示rsa公钥,复制

 

//然后将该公钥添加到github的ssh列表中

$ ssh -T git@github.com

//之后显示以下提示,表示连接成功

 

添加远程库

$ git clone git@github.com:xxxx/xxx.git

//将远程库copy一份到本地

//进行相应的编辑修改(假设已经进行了git操作)后

$git remote add origin git@github.com:xxx/xxx.git

//origin代表远程操作,如果显示error,则先执行 git remote rm origin

$git push origin master

//将本地分支(默认是master)push到远程的master分支上去,本地master和远程master会合并

//在之前可能会需要确认身份

//git config --global user.email "xxx“
//git config --global user.name "xxx"

 

分支

 $ git branch

//查看当前分支的情况

$ git branch visitor

//创建一个分支

$ git branch

$ git checkout visitor

$ git branch

//然后对该branch内容修改并加入到git库中,之后切换到master分支,查看在visitor分支中修改了的内容,可以发现在master分支中并未修改

$ git checkout master

$ git merge visitor

//将visitor分支的内容合并到master分支中去

$ git branch -d visitor

//删除visitor分支

不同分支之间的关系见url:http://github.liaoxuefeng.com/sinaweibopy/video/master-and-dev-ff.mp4

 

一些简化的操作

 

 

 

一些容易混淆的操作

$ git add .

//将工作区未追踪新建文件和已追踪修改文件添加到暂存区,但是不包括删除的文件

$ git add -u

//将工作区已追踪的文件的修改或者删除添加到暂存区,可以在该操作后commit达到在git库中删除文件的目的

$ git add -A

//集成了 git add . 和git add -u的所有功能

 

一些可能出现的问题

Example-one:

$ git clone xx@xx.git

$ mkdir xxx

$ git status

//显示本地库与远程库版本一致,工作区没有新文件,可能会疑问:我不是建了一个文件夹么?但是没有内容,只有目录分支是不行的。

解决:

$ cd xxx

$ vi README.md

..之后就可以添加了

Example-two:

Permission denied (publickey).

多日没有进行git操作后,ssh失效

posted @ 2017-07-08 21:14  unbelievableme  阅读(286)  评论(0编辑  收藏  举报