目录
(1)添加远程版本库地址(Github或者Gitlab等代码托管平台)
一、Git的下载
Git下载地址:https://git-scm.com/downloads
二、使用Git的常见步骤
1、创建代码仓库
(1)设置本机的用户名以及邮箱
- Git是分布式版本控制系统,所以每个机器都需要设置用户名以及邮箱用来区分是谁提交的代码
#git config [<options>]
git config --global user.name "Your Name" (其中Your Name 为你要设置的名字)
git config --global user.email "email" (email 为你要设置的邮箱)
(2)创建一个新的代码仓库(repository)
- 用新的目录来当做代码仓库
#创建一个目录
mkdir learngit
cd learngit
#把这个目录编程Git可以管理的仓库,会在目录下生成.git的目录,是Git用来跟踪管理版本库的
#千万不要乱动这个文件夹中的东西!
#git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [<directory>]
git init
- 使用已存在的代码文件的目录来当做代码仓库
- (装了Git的情况下)首先在你代码目录下,右键打开Git Bash Here
- 配置本机信息 git config --global user.name "xxx" git config --global user.email "xxx"
- 输入 git init
2、将文件与更改说明添加入仓库
(1)将文件添加入暂存区
#git add [<options>] [--] <pathspec>...
git add . (其中.代表将当前目录下所有文件添加入仓库、可以将.替换成需要添加的文件名字)
(2)将文件添加入仓库,同时需要提交文件更改的说明
#git commit [<options>] [--] <pathspec>...
git commit -m "xxx" (xxx为对本次修改的修改声明,即改动了什么地方或增加或者减少了什么)
(3) 小结
添加文件到Git仓库,分两步:
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; - 使用命令
git commit -m <message>
,完成。 - 注意:git add 与 git commit 一定要连着使用。才能正常的将已经修改的代码提交到代码仓库中!!
3、添加远程版本库 以及 提交与克隆操作
(1)添加远程版本库地址(Github或者Gitlab等代码托管平台)
#注意将远程版本库改成你自己要关联的远程版本库,其中 origin 为这个 远程URL 的名字
# git remote add [<options>] <name> <url>
git remote add origin git@gitlab.com:laifengyuan/git-practice.git
#查看添加的远程版本库地址
git remote -v
#删除远程版本库地址
git remote rm origin
(2)提交本地代码到远程版本库
- 由于远程库是空的,我们第一次推送
master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
#git push [<options>] [<repository> [<refspec>...]]
git push -u origin master
(3)从远程版本库克隆代码到本地
#将后面git地址改成你自己的地址,注意:克隆相当于将整个工程文件下载到你的当前目录下
git clone git@gitlab.com:laifengyuan/dits-demo.git
4、Git查看文件改动与状态
(1)查看当前版本库的状态
#获取仓库当前的状态,可以查看到仓库中什么文件进行了修改
#git status [<options>] [--] <pathspec>
git status
(2)查看修改内容
#git diff [<options>] [<commit>] [--] [<path>...]
#如:查看主分支中的1.txt文件的修改命令
git diff master 1.txt
5、Git的版本管理
(1)查看提交日志(commit后的信息)
#git log [<options>] [<revision-range>] [[--] <path>...] (查看提交日志)
#git show [<options>] <object>... (显示最近一次的提交日志以及更改信息)
git log 查看提交日志
git log --pretty=oneline 使提交日志显示得更加清楚整洁
或用:(强烈建议使用这种方式!!!)
git log --pretty=reference
git show 查看最近一次的提交日志 以及 更改信息
(2)版本的更改
# git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
# git reset [-q] [<tree-ish>] [--] <pathspec>...
# git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<tree-ish>]
# git reset --patch [<tree-ish>] [--] [<pathspec>...]
git reset --hard <commit id>回退到对应版本或者回到最新版本
#查看每一次命令的记录,一般查找最新版本的commit id 然后回到对应最新版本
#git reflog [ show | expire | delete | exists ]
git reflog 查看每一次命令的记录
(3)撤销修改
# git checkout [<options>] <branch>
# git checkout [<options>] [<branch>] -- <file>...
#情况1:改乱了工作区某个文件(未添加到暂存区:即使用git add),想直接丢弃工作区的修改
git checkout -- file 或者 git restore <file>
#情况2:改乱了工作区某个文件(已经添加到暂存区:即使用了git add,但还未提交到版本库),想修改丢弃
git reset HEAD <file> 或者 git restore --staged <file> //撤销添加到暂存区的操作
git checkout -- file 或者 git restore <file> //直接丢弃工作区的修改
- 情况1:
- 情况2:
(4)删除文件
#情况1:当你在工作区将文件删除后,想在版本库也删除该文件(本质:其实就是更新版本库的修改)
git add <file> / git rm <file> //将修改(文件的删除)添加到暂存区
git commit -m <message> //将修改提交到版本库
#情况2:同事在工作区和版本库中删除该文件
git rm <file> //当使用git rm的时候工作区的文件也会被删除
git commit -m <message>
#情况3:在工作区误删文件,想要恢复
git restore <file> //从版本库中恢复到工作区
(5)小结
-
情况1:改乱了工作区某个文件(未添加到暂存区:即未使用git add),想直接丢弃工作区的修改
git checkout -- file 或者 git restore <file> -
情况2:改乱了工作区某个文件(已经添加到暂存区:即使用了git add,但还未提交到版本库),想丢弃修改
git reset HEAD <file> 或者 git restore --staged <file> //撤销添加到暂存区的操作
git checkout -- file 或者 git restore <file> //直接丢弃工作区的修改 -
情况3:改乱了工作区某个文件(并且已经提交到本地版本库,未提交到远程版本库),想丢弃修改(直接回退版本)
git reset --hard <commmit id>
6、Git的分支管理
(1)分支的创建
#分支的创建
git branch <fileName>
(2)分支的查看
#分支的查看
#其中前面有 * 号表示当前所在分支
git branch
(3)分支的切换
#分支的切换
git switch <branchName>
(4)分支的合并
#git merge [<options>] [<commit>...]
#合并指定分支到当前分支
#如:合并 <branchName> 分支到 当前所在分支(带*号所在的分支)
git merge <branchName>
#注意:当Git无法自动合并分支的时候,要先解决冲突,解决冲突后,再提交、合并。
#使用git log --graph 可以查看分支合并图
(5)分支的删除
#分支的删除
git branch -d <brancName>
(6)小结
#查看分支
git branch
#创建分支
git branch <branchName>
#切换分支
git switch <branchName> / git checkout <branchName>
#创建+切换分支
git switch -c <branchName> / git checkout -b <branchName>
#将<branchName>合并到当前分支
git merge <branchName>
#删除分支
git branch -d <branchName>
7、Git的标签管理
(1)标签的添加
#git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] <tagname> [<head>]
#在当前分支中打上标签
git tag <tagName>
#根据commit id 打标签
git tag <tagName> <commit id>
#添加带说明的标签
git tag -a <tagName> -m "message" <commit id>
(2)标签的查看
#标签的查看
git tag
git show <tagName>
(3)标签的删除
#标签的删除
git tag -d <tagName>