git的基本使用

查看git版本

git --version

git更新

git clone https://github.com/git/git
# 推荐
git update-git-for-windows

git相关配置

任意位置右击鼠标,选择 Git Bash Here 打开 Git 终端

1.设置用户名
git config --global user.name 'github用户名'
2.设置用户邮箱
git config --global user.email '邮箱'
3.查看设置信息
git config --list

创建git本地仓库

1.创建文件夹
mkdir 文件夹名(英文)
2.初始化git仓库
git init [项目名]  //在当前路径下创建一个项目,并初始化
git init          //把当前目录初始化成git仓库

操作git本地仓库

1.查看文件状态

提示 Untracked files: 下的红色文件表示工作区的文件未添加到暂存区;
提示 Changes to be committed: 下的绿色文件表示已添加到暂存区;
提示 Changes not staged for commit: 下的红色文件表示文件已被修改且未添加到暂存区。

git status
2.文件添加暂存区

可以添加单个或多个文件,使用 . 时表示工作目录所有新增和修改的文件,不包括删除文件,-A 参数包含新增、修改、删除的文件。

git add 文件
3.暂存区文件提交到Git仓库
git commit -m "提交描述"
4.查看历史提交

显示最近n次commit记录,不指定参数n表示全部

git log -n
5.删除仓库文件

一般在文件目录中把没用的文件删除,或者用rm命令删除。

rm -rf 文件
git rm 文件
git commit -m "提交删除描述"

版本回退和撤销

在Git中,HEAD指针指向当前版本,HEAD^表示上一个版本,一个 ~ 或者 ^ 表示往前一个版本,以此类推;如果版本很多可以使用commit id 或者 HEAD~n,n表示往前n个版本。

HEAD实际上是指向某一分支的指针,使用到HEAD的地方完全可以用分支替换,如主分支master

1.commit和reset记录

当找不到 commit id 时使用以下指令可以查看每次提交和回退的记录。

git reflog
2.回退到指定版本

会重置State区和工作目录中的内容,id一般使用前四位就行。

git reset --hard HEAD^
git reset --hard commit-id
3.回退已提交的版本库

回退版本,保留工作目录和暂存区的内容,并把与工作目录内容有差异的文件放进暂存区。

git reset --soft HEAD^
4.回退已提交的版本库和暂存区

reset 如果不加参数,那么默认使用 --mixed 参数。回退版本,保留工作目录,并清空暂存区。

git reset HEAD
5.撤销对工作区的修改

指定一个或多个文件,使用 . 时表示所有文件。如果暂存区存在文件,优先将暂存区的文件恢复到工作目录,否则将版本库的文件恢复到工作目录,总之能恢复到最新的git add 或 git commit 时的状态。

git checkout -- [file]
6.撤销对暂存区的修改

指定一个或多个文件,使用 . 时表示所有文件。

git reset HEAD [file]

版本对比

1.比较工作区和暂存区

不加参数即默认比较工作区与暂存区

git diff
2.比较工作区和版本库
git diff HEAD
3.比较暂存区和版本库
git diff --cached [commit id]

分支操作

1.创建分支
git branch [name]
2.切换分支
git checkout/switch [name]
3.创建并切换分支
git checkout -b [name]
git switch -c [name]
4.查看当前分支
git branch
5.删除分支
git branch -d [name]
6.合并分支

将name分支与当前所在分支合并

git merge [name]
7.合并冲突

Git用<<<<<<>>>>>>分支name标记出不同分支的内容,等号作为分隔线,需要手动修改文件内容后再提交。

8.查看分支合并图
git log --graph

git标签

发布一个版本时,我们通常先在版本库中打一个tag标签,它跟某个commit id绑在一起。

1.查看所有版本标签
git tag
2.新增一个版本号
git tag [tagname]   //默认为HEAD
git tag -a 标签名(如V1.0) commit-id -m "标签描述"
3.删除标签
git tag -d 标签名(如V1.0)
4.查看版本修改的内容
git show 标签名(如V1.0)

git远程管理github仓库

首先在GitHub上创建一个新的仓库

1.git克隆

将github项目复制到本地

git clone 项目url
2.链接到远程库

远程库的别名,Git默认叫origin,也可以改成别的名称。第一种使用SSH协议传输,需要生成密钥,第二种是https协议传输,不需要生成密钥。

git remote add origin 项目url
git remote add origin git@github.com:Elaine-sl/test.git
git remote add origin https://github.com/Elaine-sl/test.git

如果提示 fatal: remote origin already exists. 表示仓库已经存在,先删除再链接。

git remote rm origin
3.生成密钥(SSH keys)

输入指令后,要求确认路径和密码,一路默认的回车就行(也可根据需要更改);打开刚才的文件路径,找到 id_rsa.pub,复制里面的 key,从github进入Account->Settings->SSH and GPG keys进行添加SSH keys。

ssh-keygen -t rsa -C "GitHub使用的邮箱"
5.验证密钥
ssh -T git@github.com
6.推送本地仓库主分支到远程仓库主分支

格式:git push <远程主机名> <本地分支名> :<远程分支名>
<1>省略远程分支名,通常推送到同名的远程分支,如果不存在将会被创建。
<2>如果当前分支与多个远程主机存在关系,可以加参数-u,表示默认一个主机,之后使用 git push 也可以,默认只推送当前分支到远程。

git push origin master
git push -u origin master
7.从远程仓库拉取数据
<1>.fetch

将远程主机的master分支最新内容拉到本地,但不进行合并,需要使用git merge命令进行合并。如果没有指定远程分支则将远程主机的全部更新拉回本地。

git fetch origin master
<2>.pull

格式:git pull [远程主机名] [远程分支名]:[本地分支名]
如果远程分支与当前分支合并,本地分支可以省略。
pull 将远程主机的master分支最新内容拉下来后与当前本地分支直接合并。

git pull origin master
8.推送本地标签到远程
git push origin 标签名   //一个
git push origin --tags  //所有标签

你可能感兴趣的:(git,github)