了解git的工作原理
可以将git简单的分为三个区域
1、工作区(working directory)
2、暂缓区(stage index)
3、历史记录区(history) 通俗理解也可以叫本地仓库
4. 远程仓库
三个区域关系:
工作区是我们能看到的区域,我们在工作区修改增加代码;
完成编辑后,我们用git add 将工作区文件添加到暂存区;
然后利用git commit 提交文件到我们自己的分支,也就是自己的本地仓库。
操作命令如下:
1.git checkout --files或者git checkout . ,把文件从暂存区域复制到工作目录,用来丢弃工作区修改,不改变暂存区;
2.工作区添加文件到暂存区 git add files 或者git add . , .代表全部文件;
3.git reset -- files 或者git reset .清空暂存区文件,不改变工作去;
4.当执行 git rm --cached files 命令时,会直接从暂存区删除文件,工作区则不做出改变.
5.使用git add .将工作区提交到暂存区,git commit将暂存区提交到本地仓库,git push将本地仓库提交到远端仓库
一:将本地项目提交到github(新建的项目)
1、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库;
2、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;
3、再通过git commit -m "注释内容"把项目提交到仓库;
如果这一步出现错误,是因为你没有告诉git你是谁,
git config --global user.email "724577807@qq.com"
git config --global user.name "724577807@qq.com" ,之后重新commit
4、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remote add origin https://github.com/lizhen376751/MyBatisTest.git将本地仓库和远程仓库进行关联;(可以直接忽略,就是在github上直接创建一个项目,并将项目的地址复制下来)
5、最后通过git push -u origin master把本地仓库的项目推送到远程仓库(也就是Github)上;(若新建远程仓库的时候自动创建了README文件会报错,解决办法看上面)。
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
二.新建分支
1.在本地新建一个分支: git branch develop
2.切换到你的新分支: git checkout develop
3.将新分支发布在github上: git push origin develop
三:删除分支
1.在本地删除一个分支: git branch -d develop
2.在github远程端删除一个分支: git push origin :develop (分支名前的冒号代表删除)
五:合并分支
1.git reset --hard 代码库中的文件覆盖本地工作版本(因为远端的主分支代码还没有修改所以和本地代码不一致,此时需要将本地代码和远端代码一致,但要注意本地的代码一定要把修改完的提交之后才能执行此操作)
2.git checkout master 选择主分支
3.git merge develop 将develop分支的代码合并到主分支上
六:提交代码
git add . #将目录下所有新增和修改存至缓存区,但不包括删除
git add -u #将目录下所有修改和删除存至缓存区,但不包扣新增
git add -A #缓存所有改动
git add .config(是修改后的提交,用这个命令将文件添加到版本库里面)
git add .(是将所有的修改后文件全部提交)
1.git add pom.xml (是新加的文件的提交,用这个命令将文件添加到版本库里面)
2.git commit -m "注释内容" 把项目提交到仓库;
3.git push origin master或者develop 提交到分支或者master分支
七:回退版本
git reset 是指将当前head的内容重置,不会留log信息。
-
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard 版本号
。(版本号不用加引号) -
穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。 -
要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
八:拉取项目
(1)先在本地新建一个文件夹,把该文件夹作为一个本地仓库。
(2)然后初始化版本仓库,命令为:git init. 然后会在这个文件夹下创建一个.git的隐藏文件.
(3)然后就可以从Github远程克隆一个版本库,在终端执行如下代码:git clone *****url地址。
九:回退远端分支
git revert是用一次新的commit来回滚之前的commit, git reset是直接删除指定的commit。
1、git reset --hard HEAD~1 本地代码回滚到上一版本(或者指定版本)
2、git push -f origin master 加入-f参数,强制提交,远程端将强制跟新到reset版本
这个的意思就是说将本地代码回退到某个版本,然后强制提交到远端,使远端的代码和目前本地的相同
10.删除远程仓库文件的命令(加入.gitignore文件后无效也可以用这个方法)
git删除远程文件夹或文件的方法(本地文件不会删除,删除的只是本地仓库的,删除本地仓库的然后提交到远端,删除文件夹或者文件都是一样的,加个xxx/ 就是xxx文件下的所有文件)
git rm -r -n --cached */src/\* //-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
git rm -r --cached */src/\* //最终执行命令.
git commit -m"移除src目录下所有文件的版本控制" //提交
git push origin master //提交到远程服务器
git rm -f --cached *.iml //强制移除后缀为.iml在Git文件里面的追踪,不删除本地文件
11.git配置文件config用户名和邮箱的设置和查看
1.设置用户名 $ git config --global user.name "yourname"
2.设置用户邮箱 $ git config --global user.email myemail@qq.com
3.查看git设置列表信息 $ git config --list
4.查看用户名 $ git config user.name
12.git回退说明
git reset --soft:回退到某个版本,只回退了commit的信息。如果还要提交,直接commit即可
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和add信息
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,慎用!(一般我们会选择这个命令)
简单来说,soft不会回退暂存区的代码,之后还可直接commit提交本地的代码,mixed回退commit和add信息,本地代码不改变,需要add和commit提交原来的代码,hard直接回退本地的代码。