Git 入门的常规操作。包括冲突处理

首先git是用来做代码托管,版本控制,很大程度上提供了开发的便捷性,特别是在多人协作开发的时候,现在很多普遍的公司都在用git,也有一些在用svn。

先说一下git的工作原理:

要先掌握git,你就得明白其中的原理。其中在我们进行开发时,git将我们的内存分为三个区

工作区:我们存放文件的区域

暂存区:执行 git add 后将工作区的内容存到暂存区

版本区:执行git commit 后,将暂存区的内容存到当前分支下的版本区,也就是push上去的内容




简单操作

git init     初始化一个git项目,会生成隐藏的.git文件,版本控制的必要文件

git clone https://git地址  克隆远程的git地址,假如没有在本机配置rsa公私钥,即ssh得话,只能用https协议,输入用户名和密码

git pull      与远程库进行代码更新合并,假如在开发中,另一位成员上传代码到master分支中,而你也写好了代码想要推上master,这时他就会提示你与远程库的代码不一致,所以你就得用git pull 拉取合并。当然也能拉取特定分支 git pull origin master(远程分支名):master(本地分支名),当然如果另一位成员在一个文件的一行里做了修改,而你也是在同一行做修改,这时就会提示自动合并冲突,下面会讲到解决冲突的方法。

git add (文件) 将文件存到暂存区 如果使用git add . 的话,就将当前目录下的所有文件都存到暂存区

git diff 查看文件在工作目录与暂存区的差别。如果还没 add 进暂存区,则查看文件自身修改前后的差别。也可查看和另一分支的区别

git commit -m "test" 将暂存区的内容存到当前分支下的版本库上,并命名为test

git push origin master     将本地master分支推送到远程库的master分支上

git remote add origin https://git地址 本地添加远程库的地址并命名为origin 之后的操作都可以直接用origin

git checkout -b "user" 切换并创建本地分支,user ,如果用此分支push上远程库的话,远程库会自动生成user分支

git branch -a 查看本地及远程库分支




入门操作


git reset

git reset --hard/sort Head 回退commit之前的版本

  1. git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  2. git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  3. git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

git log 查看git 日志,其中有包括commit的历史和Head

git reset --hard origin/master 回退远程库版本




git revert 

git revert用于反转提交,执行revert命令时要求工作树必须是干净的.

git revert用一个新提交来消除一个历史提交所做的任何修改.

revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)

revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.





git stash 

将你当前工作区里修改的内容回退到上一个commit之前,用于保存当前操作可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug,  先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。

git stash top  恢复git栈里的内容并删除他

git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

上面说到的pull出现冲突,很多时候他会提示你需要手动解决冲突,如果不行的话

你可以git stash 将当前的内容暂存起来,再pull 再恢复,再手动解决冲突




合并远程分支

1、在本地新建一个与远程的dev版本相同(被合并的版本)的dev分支

git checkout -b dev origin/dev
2、返回到master版本
git checkout master
3、把本地的dev合并到master
git merge dev
4、把本地的master同步到远程
git push origin master

删除远程的master分支:git push origin :master  


猜你喜欢

转载自blog.csdn.net/weixin_39797865/article/details/80456852