git使用

2018-10-18  本文已影响0人  simon_李玉兵

git安装后进行一些设置

git config --global user.name [你的英文名]
git config --global user.email [你的邮箱]
git config --global push.default [参数] //参数值为matching、simple。

  1. ‘matching’ 参数是 Git 1.x 的默认行为,其意是如果你执行 git push 但没有指定分支,它将 push 所有你本地的分支到远程仓库中对应匹配的分支。
  2. 而 Git 2.x 默认的是 simple,意味着执行 git push 没有指定分支时,只有当前分支会被 push 到你使用 git pull 获取的代码。
  3. 例:比如当前你在一个新需求分支feature-1正在开发新的需求,但是还没有完成,突然发现线上代码有个bug,需要切过去修复bug,修复完了推送到服务器,这时候只推送bug修复分支,之前的feature-1分支还没完成,是不允许推到服务器的,这就是优势。simple的优势

git config --global core.quotepath false //防止文件名是中文的文件出现乱码。
git config --global core.editor "vim" //设置git的编辑器为vim

创建一个仓库

将文件放入仓库

微信图片_20180929114334.png

查看状态和修改

版本回退

Git is a distributed version control system.
Git is free software distributed under the GPL.

使用 git reset --hard HEAD^回退上一版本。HEAD^^表示上上版本、HEAD~100表示上一百个版本。
运行后工作区中的代码已经回到add distributed版本。

我们只需要知道commit id即可。使用git reflog可以查看。下图中红色部分就是commit id

6.png

执行git reset --hard commit_id。上图可看出我的append GPL的id为ee4cbc2。所以执行 git reset --hard ee4cbc2就可以回退。

git reset --mixed / --soft / --hard之间的区别

git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和add信息

git reset --soft:回退到某个版本,git status查看,可发现暂存区是有东西在里面的。此时使用git commit -m "提交说明",即可回到回退版本的上一版本。
例如:现在处在append GPL版本,添加一个lisen.txt文件(内容随便写),使用git add lisen.txt添加到暂存区。然后使用git reset --soft HEAD^,回退到add distributed版本。git status查看状态,发现lisen.txt并没有被回退。如果使用git reset --hard HEAD^,再git status,发现On branch master nothing to commit, working tree clean。

git reset --hard:彻底回退到某个版本,工作区和暂存区的内容都会被回退,慎用!
分别用git reset --soft HEAD^git reset --hard HEAD^,然后使用git status命令即可知道两者的差别


工作区和暂存区

就是你在电脑里能看到的目录,比如我的imitation-git文件夹就是一个工作区。

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

把文件往Git版本库里添加的时候,是分两步执行的.

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

撤销修改

删除文件

  1. 先添加一个新文件test.txt到Git并且提交。
  2. 直接手动删除工作区中的内容。这时git status将告诉你,你的文件被删除。然后是下面两种选择
    2.1. 确定要删除版本库中的文件,那就用命令git rm <file>删掉,并且git commit
    2.2. 如果是误删了,git checkout可以撤销操作。

远程仓库GitHub

  1. 创建SSH Key,打开git bash, 输入ssh-keygen -t rsa -b 4096 -C "your_email@example.com"your_email@example.com改成你的邮箱地址。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
  2. 登录GitHub,打开“Settings”——SSH and GPG keys。点击New SSH Key,title随便写,将id_rsa.pub里的内容复制到key里。
  3. 跟着GitHub提示走,就可以创建远程仓库了。
  4. 使用git clone可以将远程仓库clone到本地。

分支管理

1.创建分支

git branch [分支名称] //创建分支——git checkout [分支名称] //切换到某分支·
git checkout -b [分支名称] //创建并切换 git branch //显示分支 *为当前分支

  1. 合并分支

切换到master分支。git checkout mastergit merge [需合并的分支名]git branch -d [需删除的分支名]

  1. 解决冲突

在master分支的4.txt中内容为 1234。切换到dev分支,在dev分支中添加一行 5678,然后提交。再切换回master分支,也增加一行8906,然后提交,在合并。此时会显示conflict。

10.png
修改冲突的文件,再次提交到仓库。

git学习

廖雪峰的官方网站
菜鸟教程

上一篇 下一篇

猜你喜欢

热点阅读