Git 命令手册

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DreamHome_S/article/details/83989542

版本控制流程图

工作区(Working Directory)
版本库(Repository):隐藏目录 /.git
版本库中包含index(stage)的暂存区和自动创建的第一个分支 master,以及指向master的指针head
在这里插入图片描述

当前用户配置

# 配置
$ git config --global user.name "name"
$ git config --global user.email "email address"
# 查看
$ git config --global  --list

创建版本库

# 创建
$ git init
# 查看隐藏 .git
$ ls -a
# 撤销git
$ rm -rf .git

# 将文件添加到仓库
$ git add *.* *.*

#将整个项目添加到仓库
$ git add . 

# 查看已经添加的文件
$ git ls-files

# 将添加的文件提交到仓库
$ git commit -m "message"
# 查看工作区状态
$ git status
# 查看工作区和版本库里面文件 file 最新版本的区别
$ git diff HEAD -- file

版本回退

文件 1.修改 2. 添加 3. 提交 
# 查看历史修改记录
$ git log
# 回退到上个版本 HEAD表示当前版本 ^表示上一个 ^^表示上上个
$ git reset --hard HEAD^

# 回到未来的某个版本(*****为commit id)
$ git reset --hard *****

如果不知道未来版本号*****
# 查看每次命令
$ git reflog

撤销修改

file文件在工作区的修改全部撤销。

$ git checkout -- file

两种情况:

一种是file自修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态;

一种是file已经添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态。

三种场景:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库。

删除文件

删除工作区文件file后:

两种选择:

  1. 从版本库中删除该文件:

    $ git rm file
    $ git commit -m "message" 
    
  2. 误删,恢复文件到最新版:

    git checkout -- file
    

添加远程仓库

$ git remote add origin https://github.com/dreamhomes/test.git
# 第一次
$ git push -u origin master
# 其它
$ git push origin master

远程库克隆

# ssh
$ git clone [email protected]:dreamhomes/test.git
# https
$ git clone https://github.com/dreamhomes/test.git

创建和合并分支

# 查看分支
$ git branch
# 创建分支
$ git branch <name>
# 切换分支
$ git checkout <name>
# 创建+切换分支
$ git checkout -b <name>
# 合并某个分支到当前分支
$ git merge <name>
# 删除分支
¥ git branch -d <name>

解决冲突

在这里插入图片描述
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
在这里插入图片描述
git log --graph命令可以看到分支合并图。

多人协作

  • 查看远程库信息:git remote -v
  • 从本地推送分支:git push origin branch-name
  • 如果推送失败,用 git pull抓取远程的新提交;
  • 在本地创建和远程分支对应的分支:git checkout -b branch-name origin/branch-name名称一致;
  • 建立本地分支和远程分支的关联:git branch --set-upstream branch-name origin/branch-name
  • 从远程抓取分支, 使用 git pull,如果有冲突,要先处理冲突。
  • git rebase操作可以把本地未push的分叉提交历史整理成直线;

猜你喜欢

转载自blog.csdn.net/DreamHome_S/article/details/83989542