Git常用命令

以下Git命令笔记是博主自我学习时记录,仅供参考,实际环境中操作请先在测试环境中进行。

用户配置

查看自己的用户名和邮箱地址:

git config user.name
git config user.email

配置用户信息:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

创建版本库

把目录变成Git可以管理的仓库,可看见.git文件夹

git init

添加readme.txt文件的改动到Git本地的暂存区

git add readme.txt

提交变动,并说明此次提交,从暂存区提交到master分支

git commit -m  "提交文件备注"

远程库

登录GitHub,创建一个仓库xxxxxx
本地仓库关联远程GitHub仓库,仓库名需一致

git remote add origin git@server-name:path/repo-name.git

把本地库的内容推送到远程,第一次推送master分支时,加上-u参数把本地的master分支和远程的master分支关联起来,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

git push -u origin master

从远程库克隆一份到本地

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

查看远程库的信息,-v显示详细信息

git remote

推送本地分支到远程库

git push origin master

将远程库的改动拉取到本地

git pull

把本地未push的分叉提交历史整理成直线

git rebase

状态&日志

仓库当前的状态,修改了什么文件,新增了什么文件

git status

查看改动

git diff readme.txt

查看工作区和版本库master的区别

git diff HEAD -- readme.txt

查看日志

git log

查看简易日志

git log --pretty=oneline

查看分支合并图

git log --graph

分支管理

创建dev分支并切换到dev分支,-b参数表示创建并切换

git checkout -b dev

相当于以下两条命令:

  1. 创建分支
git branch dev
  1. 切换分支
git checkout dev

查看当前分支

git branch

指定本地dev分支与远程origin/dev分支的链接

git branch --set-upstream-to=origin/dev dev

dev分支有改动需要合并至master分支时:

切换到master分支

git checkout master

合并指定分支(dev分支)到当前分支(master分支)

git merge dev

删除dev分支 -D强行删除(未合并的分支)

git branch -d dev

最新版本Git可支持以下两个命令:
创建dev分支并切换到dev分支

git switch -c dev

切换到已有分支

git switch master

分支冲突
master分支(当前分支)与dev分支合并(git merge dev)有冲突时,git status查看冲突文件,然后修改冲突文件,git add readme.txt,然后commit

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward

git merge --no-ff -m "merge with no-ff" dev

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

版本回退

Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向A版本改为指向B版本
回滚到当前版本的上一版本,git log将看不到当前版本(即HEAD版本)的日志

git reset --hard HEAD^

回滚到某一版本,也可以是未来的版本(即消失的HEAD版本,需要知道版本号),版本号可以不用写全,前几位即可。

git reset --hard xxxxx

查看命令历史,可以回到已经回滚的未来版本。

git reflog

readme.txt文件在工作区的修改全部撤销,用版本库里的版本替换工作区的版本

git checkout -- readme.txt
  1. 没有git add时,用git checkout -- file
  2. 已经git add时,先git reset HEAD <file>回退到1,再按1.操作
  3. 已经git commit时,用git reset回退版本

删除文件

先手动删除文件,然后使用git rm <file>git add <file>效果是一样的。

git rm test.txt

Gitee

Gitee:国内的Git托管服务

关联远程库

git remote add origin git@server-name:path/repo-name.git

删除已关联的远程库

git remote rm origin

绑定两个远程分支

git remote add github git@server-name:path/repo-name.git

git remote add gitee git@server-name:path/repo-name.git

git push github master

git push gitee master

知识拓展

Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

Git版本库里有称为stage(或者叫index)的暂存区,有Git自动创建的第一个分支master

Git管理的文件分为:工作区,版本库,版本库又分为暂存区stage和暂存区分支master(仓库)

工作区>>>>暂存区>>>>仓库
git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库

查看工作区和暂存区差异

git diff

查看暂存区和仓库差异

git diff --cached

查看工作区和仓库的差异

git diff HEAD

暂存

暂时保存当前工作空间的改动,使用之前需git status确定没有Untracked files

git stash

查看暂存列表

git stash list

恢复暂存内容,恢复后删除stash内容

git stash pop

恢复statsh内容,恢复后不删除statsh内容

git stash apply

恢复指定statsh内容,恢复后不删除statsh内容

git stash apply stash@{0}

将其他分支的提交内容合并到当前分支

git cherry-pick xxxxxx

GitHub

参加开源项目,Fork开源项目到自己账号下的仓库,然后clone到本地,修改完push到自己的远程库,在远程库推送pull request给开源项目,开源项目官方库选择是否接受你的修改

posted @ 2021-02-12 17:02  LORD_YE  阅读(110)  评论(1)    收藏  举报