一、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
-
- 本地分支和远程仓库的分支无跟踪 *
下面的命令会建立关系,并且在远程仓库创建该分支 (本地有的分支,远程仓库没有)
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 提交到远程仓库
团队使用:
- 新建远程仓库(组长)
- 邀请合作者 管理 -> 仓库成员管理 -> 邀请用户
- 被邀请者在邮箱进行同意
- 进行多人开发 git clone 地址 团队编写代码 > git add * > git commit -m 'message' > git pull origin master (更新远程仓库代码到本地 **很重要) > git push origin master (提交本地仓库到远程)