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 则只具有拉取权限。