Git

前几天学习了廖雪峰的git教程,很受用

http://www.liaoxuefeng.com/

在这里整理一下经常使用的命令,方便查找

1.下载安装git

2.设置git的user name和email:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
查看git 配置
$git config --lis
 
3.生存密钥:
$ ssh-keygen -t rsa -C "gudujianjsk@gmail.com"
按3个回车,密码为空这里一般不使用密钥。
最后得到了两个文件:id_rsa和id_rsa.pub
 
4.在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。
打开 http://github.com,登陆自己的github账号,然后添加ssh
 
(2,3,4步骤是为了编写完本地代码后上传到github上的前提)
 
基本流程:(对应的项目右键,进入Gitbash)
git .init                           //创建git管理仓库
git add *                           //把文件添加到仓库
git  remote add origin dev@faa      //把文件添加到远程仓库的时候用到,如果是我从远程仓库上面克隆下来的话就不用了
git commit -a -m “??”               //把文件提交到仓库                  
git push origin master              //当前默认是上传到主分支

git status //查看结果
git diff //
看看以前改的记录

$ git log   // 查看历史记录
$ git log --pretty=oneline  //简化查询历史记录
$ git reset --hard HEAD^      // 回退到上一个版本“add 
$ cat readme.txt //查看readme.txt的内容
$ git reset --hard 3628164 //指定回到未来的某个版本
$ git reflog //记录你的每一次命令

$ git checkout -- readme.txt //丢弃工作区的修改,总之,就是让这个文件回到最近一次git commitgit add时的状态

$ git clone git@github.com:michaelliao/gitskills.git //克隆仓库到本地

分支流程:
$ git checkout -b dev //创建dev分支,然后切换到dev分支 相当于以下两条命令:
 $ git branch dev
 $ git checkout dev 
 $ git branch                //命令查看当前分支
 $ git checkout master          //切换回master分支
 $ git merge dev                //dev分支的工作成果合并到master分支上
  $ git branch -d dev             //删除dev分支
 
  

遇到的情况1:

添加了一个新文件test.txt到Git并且提交:

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:

$ rm test.txt

这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status查看:

$ git status
现在有两个选择,
①确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit
$ git rm test.txt
$ git commit -m "remove test.txt"

现在,文件就从版本库中被删除了。

 ②是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
 
遇到的情况2:
在电脑A建了master分支项目,电脑B克隆下来,又新建分支dev2,并push到远程目录下;
回到电脑A,怎么才能有dev2分支,使得A中的master和A中的dev2可以来回切换?
方法一
重新本地克隆远程目录
会发现默认只是主分支master,这时执行
git branch -r
git checked dev 2
git branch
就可以找到了
 
方法二:
git fetch //与远程目录同步一下,再执行一系列操作
 
 
原文地址:https://www.cnblogs.com/hjt-7/p/6133062.html