Git的基本操作

先说一下git的简单的操作,是看廖雪峰的视频学习的  可以为大家推荐一下

1.安装git

在ubuntu下使用 sudo apt-get install git,即可安装git

2.设置用户名和邮箱

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

 3.创建版本库

git安装后需要指定一个文件夹作为git仓库,pwd命令是显示当前文件全目录,在git仓库中使用git init将仓库改为可以用Git管理的仓库,可以在仓库下看到一个后缀名.git的文件

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

4.添加以及提交操作

首先在本地仓库中添加一个文件,使用git  status查看状态

wxc@wxc-Lenovo-G40-30:/media/wxc/B66C7B026C7ABCA5/AppInUbuntu/IDEA/Projects/spocProject-$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	teach.txt

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

虽然本地仓库和远程仓库一致,但是本地仓库发生改变,未跟踪的文件需要使用git add进行更新

git add file.java或者 git add file

git add .

两者没什么大的区别,git add .是全部提交到缓存区,git  add .是提交一个文件或者文件夹

位于分支 master
您的分支与上游分支 'origin/master' 一致。
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)

	新文件:   teach.txt

添加后我们需要使用git commit 进行提交,可以一次提交多个文件,本地仓库更新文件需要把文件放到git目录或者子目录中

[master a4a4b3c] ceshi
 1 file changed, 1 insertion(+)
 create mode 100644 teach.txt

5.版本回退

使用git log 或者git reflog可以进行任意版本的穿梭,然后使用git  reset -- hard commitId(版本号没必要找全,写前几位就可以了)

wxc@wxc-Lenovo-G40-30:/media/wxc/B66C7B026C7ABCA5/AppInUbuntu/IDEA/Projects/spocProject-$ git log
commit a4a4b3c423d80cefc481fe72e335ebf9805089dd
Author: wxc <[email protected]>
Date:   Sat Jun 22 11:02:18 2019 +0800

    ceshi

commit ef6d38da0dc2456a89ee5d9e9c07d0c5d4ae2728
Author: wxc <[email protected]>
Date:   Fri Jun 21 16:49:06 2019 +0800

    note

commit 4b07019d71ac7dcd3021e933035b7a7a98d2c07a
Merge: 007ab9a 66cf744
Author: wxc <[email protected]>
Date:   Fri Jun 21 11:28:14 2019 +0800

    003

工作区与暂存区

首先我们在工作区进行操作,通过git add将文件添加至暂存区,然后通过git  commit一次性将暂存区文件提交到分支上

                         git-stage-after-commit

管理修改

使用git diff -- HEAD  reach.txt查看工作区与版本库的差别

撤销修改

对于这种操作有两种情况

1.直接丢弃工作区的修改

git checkout -- file

2.文件已经添加到暂存区,先使用reset进行版本回退到工作区,然后使用checkout丢弃工作区

git reset HEAD file
git checkout -- file

文件删除

在仓库中使用git add添加一个文件,并且git commit提交到版本库,如果在工作区使用rm删除这个文件,使用git status查看到当前工作区和版本库不一致,此时有两种可选择的操作

1.确实删除(使用git rm 进行删除,然后提交更新版本库)

wxc@wxc-Lenovo-G40-30:/media/wxc/B66C7B026C7ABCA5/AppInUbuntu/IDEA/Projects/spocProject-$ git rm teach.txt 
rm 'teach.txt'
wxc@wxc-Lenovo-G40-30:/media/wxc/B66C7B026C7ABCA5/AppInUbuntu/IDEA/Projects/spocProject-$ git commit -m  "remove file"
[master 0cb33ee] remove file
 1 file changed, 1 deletion(-)
 delete mode 100644 teach.txt

2.删除错了,进行版本回退

git checkout -- file

添加远程仓库

在github创建远程仓库,与本地仓库进行关联

git remote add origin [email protected]:whitedevelop/XXX.git
git push

从远程仓库克隆

git clone [email protected]:whitedevelop/gitskills.git

git支持多种协议,常用的是https和ssh的,https需要输用户名和邮箱,ssh不需要

创建与合并分支

git checkout -b dev  //创建dev分支,并切换到dev分支
git branch           //查看所有分支
git checkout dev     //切换到dev分支

将dev分支合并到master分支

在devdev分支开发完后(commit提交后),使用git checkout master切换到master分支,使用git merge dev即可把dev分支的代码合并到master分支

分支开发结束后,使用git branch -d  dev删除dev分支

git branch -d dev

解决冲突

当feature分支提交后,在master分支再次提交后就变成这个样子,因为在不同分支都进行了提交,当我们使用git merger feature时会提示合并错误,我们需要手动处理冲突,手动处理后就会如图二所示

git不会自动合并分支,必须首先解决冲突再提交合并

Git的基本操作_第1张图片         Git的基本操作_第2张图片

可以使用带参数的git log查看合并情况

git log --graph --pretty=oneline --abbrev-commit

 

 

你可能感兴趣的:(Git的基本操作)