git基础常用命令和流程

下面讲解的都是在本地完成的,不需要联网,这就是git的好处,是在本地生成版本历史信息,git push需要联网,这个命令就是将本地信息推送到远端仓库上

git的工作流程

一个git仓库分为三个区

  • 工作区 平时也代码的地方
  • 暂存区 把一些写好的代码暂时存储的地方
  • 历史区 生成一个个版本记录的地方

其中暂存区和历史区代码看不见,是以数据的形式存放在.git文件中

初始化仓库

创建仓库 git init命令

关联远程仓库两种方法

  1. clone这种比较常用,方便,推荐用这种方法

git clone 远程仓库链接 文件夹名字(可以不写,默认是仓库的名字)
例如:git clone https://github.com/facebook/react.git就可以了

  1. 第二种方法就是remote

git remote add origin git地址
例如 git remote add origin(仓库的名字,一般推荐用origin) https://github.com/facebook/react.git

关联之后就可以用 git remote -v 查看关联远程仓库的信息

解除远程仓库的关联

git remote rm 名字
例如 git remote rm origin,其实就把上面关联react仓库的联结解除了

git add命令 把文件提交到暂存区

git add XXX 把某个文件提交到暂存区
git add .(把所有修改的文件,包括修改的和新增的,不包括删除的)
git add -u (把所有修改的文件,包括修改的和删除,但是不包括新增的)
git add -A (包括修改的,删除的,新增的)

git commit -m "xxx" 将暂存区提到历史区

例如git commit -m "add indexjs"就是将暂存区的文件提交到历史区了

git status命令

查看当前文件状态,看看文件处于什么状态,一般都会有提示,这个是非常人性化的,一般就靠这个命令就能把git玩透了(略屌。。。)

.gitignore文件

当我们向远端仓库推送的时候,不想提交一些文件的时候,可以在 .gitignore文件中添加这些不想提交的文件,例如:.idea,node_modules文件夹的名字,或者文件名等

将暂存区文件撤回到工作区

如果我们将错误的代码一不小心提交到暂存区的时候,我们希望撤回,有三种方法

  1. git rm --cached XXX -r 删除暂存区所有的文件或者
    git rm --cached . -r 删除暂存区所有的文件
    删除之后,然后再将正确的代码add到暂存区
  2. git checkout XXX 将暂存的某个文件撤回到(覆盖)工作区
    git checkout . 将暂存区的所有文件撤回到(覆盖)工作区
    这种方法只能限制当前代码还没有提交的情况,当前代码没有提交,回滚的是上一下提交暂存区的内容(和工作区内容不一样),如果当前这次也提交了,暂存区和工作区一样,回滚回来也是一样的,这个方式解决不了
  3. git reset HEAD xxx 或者 git reset HEAD . 在暂存区中,回滚到上一次暂存区中记录的内容(暂存区先回滚一下),然后git checkout . 把最新暂存区的信息回滚到工作区,替换工作区内容,这样就避免第二种方法的问题了(推荐用这种方法)

代码回滚操作

git reset --hard 版本号(版本号一般取前七位或者八位就行),当我们回滚到某一个历史版本之后,暂存区和工作区的内容都将被这个版本内容所代替

查看版本历史记录

git log
git reflog
都是查看历史提交记录,在没有历史版本会滚的时候,用哪个都可以,有历史版本回滚,git log只能查看当前回滚历史版本以前的版本

比较三个区的差别

git diff 工作区VS暂存区
git diff master 工作区VS历史区
git diff -cached 暂存区VS历史区

查看操作日志

history > XXX.txt 会在本地生成一个XXX,txt的文件,里面全是操作记录

向远程仓库推送(重点了)两种方法

  1. 主分支操作:git push origin(名字) master(分支) 把本地推送到远程上(推荐用这种方法)
    • 首先创建一个分支git branch XXX(分支名字,随便起,一般是自己的名字) 创建一个新的分支
  • 然后git checkout XXX 切换到这个分支上(会把当前master主分支中的信息同步到这个分支上)
  • 或者直接git checkout -b XXX 切换并且创建某个分支(前提是有主分支的情况下,把文件提交到历史区会生成master)
  • 然后把自己每天修改的文件提交到历史区git commit -m "xxx"
    把自己分支的内容合并到主分支master上git merge dev(自己的分支)
  • 然后把自己的分支删掉git branch -D XXX(分支名字),一定要切换到其他分支上才可以删除当前分支,当然也可以不删掉,只是为了避免在远程仓库中的冲突,
  • 最后在master上git push到远程仓库中

拉取远程仓库最新代码

git pull orgin(名字) master(分支) origin是本地和远程仓库关联的那个名字,master是远程仓库的主分支;

每次push前要拉取一次

解决代码冲突

如果在拉取完代码后,发生冲突,找到冲突的代码,跟写冲突的代码的人商量看用谁的代码,然后把不用的代码删掉即可,冲突的标志很明显,就是<<<<<<<<<<<<<<<<<<<<<<<<<< HEAD
code code code >>>>>>>>>>>>>>>>>>就是类似这种的标志,很容易查找



End------------

你可能感兴趣的:(git基础常用命令和流程)