前端开发常用git命令详细版
1.新建代码库
-
当前目录创建一个git代码库
git init
-
新建一个目录文件 将其初始化为git代码库
git init [pro-name]
-
远端拉去项目
git clone [url]
2.基本配置
git的设置文件为.gitconfig,他可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)
-
设置提交代码时的用户信息
git config [--global] user.name '[name]'
git config [--global] user.email '[email]'
-
编辑git配置文件
vim ~/.gitconfig
-
显示git配置
git config --list
-
显示git配置
cat ~/.gitconfig
3.增加、删除文件
添加
-
添加自定文件到缓存区
git add [file1] [file2] ...
-
添加整个目录(文件夹...)到缓存区
git add [dir]
-
添加所有目录到缓存区
git add .
删除
-
删除工作区文件,并将删除放入缓存区
git rm [file-Name]...
-
直接删除文件
fir rm -fr [file-name]...
-
修改文件名称,并且将这个文件名放入暂存区
git mv [old-name] [new-name]
4.提交代码
-
提交暂存区到仓库
git commit -m '[msg]'
-
提交暂存区指定文件到仓库
git commit [file1] [file2].. -m '[msg]'
-
提交工作区上次commit之后变化的,直接到仓库
git commit -a (注意:尽量别这么干)
-
提交时显示所有diff(提交)信息
git commit -v
-
使用一次新的commit ,代替上一次提交如果代码没有任何变化,这用来改写上一次commit的提交信息
git commit --amend -m '[msg]'
5.分支管理
建立分支
-
列出所有本地仓库分支
git branch
-
列出所有远端仓库分支
git branch -r
-
列出所有本地和远端分支
git branch -a
-
创建一个分支,但依然停留在当前分支
git branch [name]
-
创建一个分支,并切换
git checkout -b [name]
-
查看日志
git log
-
新建一个分支 只想指定的commit Id
git branch [br -name] [commit]
切换分支
-
切换分支
git checkout [name]
-
拉去最新变化
git pull
新建分支,与远端建立关系
-
本机分支及信息全部推到远端
git push -u origin [branchname]:[branchname]
-
查看origin信息
git remote -v
-
新建一个分支,与远端分支建立关系
git branch --track [branch] [remote branch]
git branch --track DevOps_RC2 remotes/origin/DevOps_RC1
合并分支
git merge [name]
-
解决冲突
在本地代码会有提示去修改即可,命令行不在多说
-
查看当前状态
git status
删除分支
git branch -d [name]
-
查看当前分支详细信息
git branch -av
-
删除远端分支
git push origin --delete [name]
-
删除远程分支2
git branch -dr [remotes.origin/br-name]
git branch -av
总结
-
创建本地分支
git checkout -b [name]
-
本地分支推送到远端
git push origin [name]:[name]
6.标签tag
-
列出所有tag
git tag
git tag -l
git tag --list
-
创建一个tag在当前cmmit
git tag [name]
-
创建一个tag在指定的cinnit
git tag [name] [commitId] -m '[msg]'
-
查看tag信息
git show [tag-name]
-
提交置顶tag到远端仓库
git push origin [tag-name]
-
提交所有tag
git push origin --tag
-
机遇某个tag创建分支并切换
git checkout -b [br-name] [tag-name]
7.查看信息
-
查看所有变动文件
git status
-
显示当前分支的版本历史
git log
-
显示commit历史,以及每次commit发生变动的文件
git log --stat
-
显示某个文件历史版本,文件名
git log --follow [file-name]
git whatchanged [file-name]
-
显示自定文件相关的diff
git log -p [file-name]
-
显示自定文件是什么人在什么时间修改的
git blame [file-name]
-
显示暂存区和上一个commit的差异
git diff --cached [commit id] 注意不写就是最新的
-
显示工作区与当前分支最新commit之间的差异
git diff HEAD
-
显示两分钟之间的差异
git diff [br-name] [br-name]
-
显示两次commit之间的差异
> git diff [commitid] [commitid]
-
显示目次提交元数据和内容变化
git show [commit]
-
显示某次提交发生变化的文件
git show --name-only [commit]
-
显示某次提交某个问价内容
git show [commit]:[file-name]
显示所有提交
git reflog
8.远程同步
-
拉去远端仓库所有变动
git fetch origin
-
显示所有远端仓库
git remote -v
-
显示某个远端仓库信息
git remote show origin
-
新增加一个仓库
git remote add [shortname][url]
-
取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]
-
上传本地指定分支到远程仓库
git push [remote] [branch]
-
强行推送当前分支到远程仓库,即使有冲突
git push [remote] --force
-
推送所有分支到远程仓库
git push [remote] --all
9.撤销
-
恢复到暂存区的自定文件到工作区
git checkout [file]
-
恢复某个commit的自定文件到工作区
git checkout [commit] [file]
-
恢复上一个commit的所有文件到工作区
git checkout .
-
重置暂存区的自定文件,与上一次commit保持一致,但工作区不变
git reset [file]
-
重置暂存区与工作区,与上一次commit保持一致
git reset --hard
-
重置当前分支的指针为指定 commit,同时重置暂存区,但工作区不变
git reset [commit]
-
重置当前分支的 HEAD 为指定 commit,同时重置暂存区和工作区,与指定 commit 一致
git reset --hard [commit]
-
重置当前 HEAD 为指定 commit,但保持暂存区和工作区不变
git reset --keep [commit]
-
新建一个 commit,用来撤销指定 commit
-
后者的所有变化都将被前者抵消,并且应用到当前分支
git revert [commit]