Git - 使用基础

 

 

设置全局信息

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

 

建立仓库

$ git init

 

添加文件

$ git add .           // 添加所有修改文件
$ git add <filename>  // 添加某个修改文件

 

提交文件到本地仓库

$ git commit -m "note"

 

查看当前仓库状态

/*
未有文件改动状态,
文件改动还未add状态
文件改动已被add状态
*/
$ git status

 

比较文件修改情况

$ git diff <filename>

 

查看文件修改记录

$ git log
$ git log --pretty=oneline  // 简化显示

 

退回到某一版本

$ git reset --hard HEAD^          // 退回上一个版本
$ git reset --hard HEAD~[number]  // 退回之前的第 number 个版本
$ git reset --hard [commit id]    // 退回到指定 commit id 的版本, commit 可以不用写完整

 

查看每一次的命令

$ git reflog

 

删除一个文件 ? 具体是删除版本库还是工作区

$ git rm <filename>

 

撤销某个文件的修改

// 用于将某个文件修改但未被add到暂存区的文件恢复到最近一次被 add 或 commit 的样子
// 就是将版本库中的文件替换工作区的版本
$ git checkout -- <filename>  

 

添加远程仓库

$ git remote add <name> <url>
$ git remote add origin git@github.com:michaelliao/learngit.git  

 

删除远程仓库

$ git remote rm <name>

 

推送本地仓库到远程仓库

$ git push <origin> <master> // 推送本地的 master 的分支 到名叫 origin 的远程仓库的 master 分支中

 

从远程仓库拉取更新到本地仓库

/*
* fatch 相当于从远程获取最新版本到本地
* 但是不会自动进行 merge
* 这个行为在 VS2015 汉化之后称为提取
*/
$git fatch <name> <master>


/*
* 相当于从远程获取最新版本并合并到本地仓库
* 在VS2015中称为拉取
*/
$git pull <name> <master>

 

 

 

 

使用 SSH

首先在本地生成 sshkey

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

然后打开你的 pub 文件

吧里面的公钥添加到你git 的个人页上

 

然后在终端使用

ssh -T git@git.oschina.net

如果显示

Welcome to Git@OSC, yourname!

那则说明添加成功

 

项目的 ssh key 和用户的 ssh key 两处地方有什么不同?
项目的 sshkey 只针对项目,且我们仅对项目提供了部署公钥,即项目下的公钥仅能拉取项目,这通常用于生产服务器拉取仓库的代码。 而用户的 key 则是针对用户的,用户添加了 key 就对用户名下的项目和用户参加了的项目具有权限,一般而言,用户的key具有推送和拉取的权限,而项目的 key 则只具有拉取权限。

 

posted @ 2017-03-08 22:29  `Laimic  阅读(181)  评论(0)    收藏  举报