Git

126 阅读5分钟

一、Git简介

  • Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
  • Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。
  • Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持

二、Git的使用

1. Git的基础用法

在任何情况下,在输入命令之后退不出来就​按shift + Q 退出

初始化git(如果不换电脑、不换系统)该命令执行一次即可**

   git config --global user.name "你的用户名"
   git config --global user.email "你的邮箱"

查看当前配置

   git config --list

初始化仓库

 "温馨提示":没有git仓库的话是无法进行git命令的
    git init  

添加当前目录的所有文件到暂存区

    // 添加当前目录到暂存区
    git add  .
    // 不管你在本地工作区的哪个路径下,执行这个都是把本地工作区的所有修改都提交
    git add  --all  
    // 指定文件到暂存区
    git add 1.txt 2.txt  (1.txt 2.txt为文件名字 )    

注意:git只提交不为空的文件夹,如果是空文件夹,git不提交到暂存区

    git commit -m "描述/日志内容"
    git log   查看提交日志  查看提交历史记录
    git reflog   查看所有的提交日志
    git status  查看状态是否提交成功
扩展命令
git stash    暂存本地仓库的代码

git stash list   查看暂存目录

git stash pop  合并远程和本地的代码

git diff -w  查看文件的不同手动解决冲突

git clone -b <指定分支名> <远程仓库地址> 

2.分支的创建,进入,删除,合并

    //创建分支
    git branch 分支名         

    //查看所有分支
    git branch    

    // 可以查看本地分支跟远程分支是否存在追踪关系
    git branch -v 
    
    //删除分支
    git branch -D  分支名          

    //切换分支
    git checkout 分支名            

    //合并分支
    git merge  被合并的分支名 --no-ff          

    //(快)合并
    git merge  分支名    
    
    //更新主支
    git pull origin master (也许之前更新过了)  

3.连接仓库,查看远程仓库,删除远程仓库,克隆远程仓库

    // 同步/ 连接远程仓库
    git remote add 文件名  地址    
    
    // 查看远程仓库
    git remote -v   
    
    //删除远程仓库
    git remote rm 仓库名   
    
    //克隆远程仓库
    git clone 仓库地址    
    
    //删除远程仓库的同步
    git remote remove origin    

4.push(推送的)的几种使用情况

1. 本地分支跟远程分支存在追踪关系

  git push origin
    1. 本地分支和远程仓库的分支无跟踪 *

下面的命令会建立关系,并且在远程仓库创建该分支 (本地有的分支,远程仓库没有)

   git push --set-upstream origin 本地分支名

3.远程仓库只有一个分支,推送的话直接用

     git push

4.当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项

     git push --all origin

5. git push的时候,需要本地先git pull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令

      git push --force origin

6. 强制将本地文件推送至远程,这样会将远程仓库的已有的文件清掉

      git push -f 

7. 提交到远程 (会覆盖)

 $ git push 

8.强推到远程

$ git push origin HEAD --force

9.推送到远程仓库

前提:必须要 git add . 然后 git commit -m ‘文件描述’ 提交到暂存区

情况一: 远程仓库什么文件都没有的

  git push -u origin "master"   直接推到远程仓库(origin 为默认的远程仓库名)

情况二:远程仓库有文件

1.首先要将远程仓库的文件拉去回来,才能推送上去
2.再推送到远程仓库

语法: git pull <远程主机名> <远程分支名>:<本地分支名>

//将远程主机origin的master分支拉取过来,与本地的brantest分支合并
例子:git pull origin master:brantest    

5.回滚命令

  1.  git reset --hard HEAD^   回退到上个版本

  2.  git reset --hard HEAD\~3   回退到前3次提交之前,以此类推,回退到n次提交之前

  3.  git reset --hard commit\_id   退到/进到 指定commit的sha码

三 常见问题及其解决办法

  • 使用原因之一:不小心用git pull拉取远程仓库代码 ,把本地开发的新代码直接覆盖掉,这时想恢复本地代码要如何操作
  git reset --hard HEAD@{8} 
  git reset HEAD 是将咱暂存区和HEAD的提交保持一致(可用与commit提交的回退)
  git reset --hard HEAD 是将工作区、暂存取和HEAD保持一致

四、个人/团队使用

个人使用:

1.先有本地仓库,再有远程仓库
在本地新建文件夹
2.编写代码
3.新建远程仓库
4.将本地得文件夹初始化到本地仓库
git init
5.将代码提交到本地仓库
git add *
6.编写提交信息
git commit -m '第一次修改'
7.绑定本地仓库与远程仓库
git remote add origin ...git
8.提交到远程仓库\
git push origin master

2)先有远程仓库,再有本地仓库
1.在gitee上新建仓库
2.在本地新建文件夹
3.将远程仓库得代码克隆到本地文件夹
>git clone ....git
4.编写代码
5.将代码提交到本地仓库
>git add * 追踪文件
>git commit -m '[kangjie]第一次提交/修改了' 提交到本地仓库
如果报错需要配置用户名密码 (第一次使用gitee可能需要操作)
>git config --global user.name "用户名" (用户名)
>git config --global user.email "2681091754@qq.com" (邮箱)
>git push origin master 提交到远程仓库

团队使用:

  1. 新建远程仓库(组长)
  2. 邀请合作者 管理 -> 仓库成员管理 -> 邀请用户
  3. 被邀请者在邮箱进行同意
  4. 进行多人开发 git clone 地址 团队编写代码 > git add * > git commit -m 'message' > git pull origin master (更新远程仓库代码到本地 **很重要) > git push origin master (提交本地仓库到远程)