大家好,我是若川。最近组织了源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。
虽然你可能用图形化工具比较多,但基本的git命令还是需要熟悉的。今天分享常用git命令。
项目前的git配置
检查git版本
git --version
查看git相关命令
git --help
查看当前的git配置信息
git config --list
查看git用户名
git config user.name-查询⽬前git所使⽤的使⽤者名称
git config --global user.name 名称注: --global 表示全局, 没有--global表示只设置在当前项目中的配置
查看git邮箱
git config user.email
-查询git所使⽤的email
git config --global user.email
设置 (配置)全局邮箱
git config --global user.email "eamil@qq.com"
全局配置用户名(设置git使⽤者名称)
git config --global user.name "username"
git对项目中的代码进行管理
初始化git储存
git init
需要提交的所有修改放到暂存区(Stage)
git add * //将工作区所有修改添加到暂存区
git add . //将工作区所有修改添加到暂存区
git add <file-name> //将指定文件添加到暂存区
git add *.js //提交所有.js格式文件
git add -f <file-name> // 强制添加 指定文件添加到暂存区
注:<file-name>指的是文件的名称
恢复(后悔药)
将暂存区的文件恢复到工作区
git reset <file-name> //从暂存区恢复指定到工作区
git reset -- . //从暂存区恢复所有文件到工作区
git reset --hard // 把暂存区的修改退回到工作区
查看工作区、暂存区的状态
git status
移除暂存区的修改
git rm --cached <file-name> //将本地暂存区的内容移除暂存区
将缓存区的文件,提交到本地仓库(版本库 )
git commit <file-name> ... "相关的记录信息" //将缓存区的指定文件提交到本地仓库
git commit -m "相关的记录信息" //将缓存区的所有文件提交到本地仓库
git commit -am '相关的记录信息' //跳过暂存区域直接提交更新并且添加备注的记录信息
git commit --amend '相关的记录信息' //使用一次新的commit,替代上一次提交,如果代码没有任何新变化,则用来修改上一次commit的提交记录信息
撤销commit提交
git revert HEAD //撤销最近的一个提交(创建了一个撤销上次提交(HEAD)的新提交)git revert HEAD^ //撤销上上次的提交
查看日志
查看历史提交(commit)记录
git log //查看历史commit记录
注:空格向下翻页,b向上翻页,q退出
git log --oneline //以简洁的一行显示,包含简洁哈希索引值
git log --pretty=oneline //查看日志且并且显示版本
git log --stat //显示每个commit中哪些文件被修改,分别添加或删除了多少行
查看分支合并图
git log --graph
查看版本线图
git log --oneline --graph
git版本控制(时光机)
回到指定哈希值对应的版本
git reset --hard <Hash>
注:<Hash> 是版本的哈希值
git reset --hard HEAD //强制工作区、暂存区、本地库为当前HEAD指针所在的版本
版本回退
git reset --hard HEAD~1 //后退一个版本
注:~后面的数字表示回退多少个版本
分支
查看分支
git branch //查看所有本地分支
git branch -r //查看所有远程分支
git branch -a //查看所有远程分支和本地分支
git branch --merged //查看已经合并的分支
创建分支(依然停留在当前的分支)
git branch <branch-name>
注: <branch-name> 是分支的名称
切换分支
git checKout <branch-name> //切换到指定分支,并更新工作区
git checkout - //切换到上一个分支
创建并切换分支(创建一个新的分支,并切换到这个新建的分支上)
git chechout -b <branch-name>
合并分支(合并某一个分支到当前分支)
git merge <branch-name>
删除分支
git branch -d <branch-name> //只能删除已经被当前分支合并的分支
git branch -D <>branch-name> //强制删除分支
删除远程分支
git push origin --delete <remote-branch-name>
注:<remote-branch-name> 远程分支名
远程仓库(团队协作)
克隆远程仓库(从远程仓库拉取代码)
git clone <url>
注:<url> 远程仓库的地址
本地库与远程库进行关联
git remote add origin <url>
注:<url> 远程仓库的地址
查看远程仓库地址别名
git remote -v
新建远程仓库地址别名
git remote add <alias> <url>
注:<alias> 远程仓库的别名<url> 远程仓库的地址
删除本地仓库中的远程仓库别名
git remote rm <alias>
注:<alias> 远程仓库的别名
重命名远程仓库地址别名
git remote rename <old-alias> <new-alias>注:<old-alias> 旧的远程仓库<new-alias> 新的远程仓库
把远程库的修改拉取到本地
git fetch <alias/url> <remote-branch-name> //抓取远程仓库的指定分支到本地,但没有合并
git merge <alias-branch-name> //将抓取下来的远程的分支,跟当前所在分支进行合并
git pull <alias/url> <remote-branch-name> //拉取到本地,并且与当前所在的分支进行合并注:<alias/url> 远程仓库的别名 或者是 远程仓库地址<remote-branch-name> 远程分支名
将本地的分支推送到远程仓库
提示!:在推送前要先拉取哦 git pull
git push <alias/url> <branch-name> //将本地的每个分支推送到远程仓库
git push <alias/url> --force //强行推送 当前分支到远程仓库,即使有冲突
git push <alias/url> --all //推送所有本地分支到远程仓库注:<alias/url> 远程仓库的别名 或者是 远程仓库地址<branch-name> 本地分支名
项目前的git配置
检查git版本
git --version
查看git相关命令
git --help
查看当前的git配置信息
git config --list
查看git用户名
git config user.name-查询⽬前git所使⽤的使⽤者名称
git config --global user.name 名称注: --global 表示全局, 没有--global表示只设置在当前项目中的配置
查看git邮箱
git config user.email
-查询git所使⽤的email
git config --global user.email
设置 (配置)全局邮箱
git config --global user.email "eamil@qq.com"
全局配置用户名(设置git使⽤者名称)
git config --global user.name "username"
git对项目中的代码进行管理
初始化git储存
git init
需要提交的所有修改放到暂存区(Stage)
git add * //将工作区所有修改添加到暂存区
git add . //将工作区所有修改添加到暂存区
git add <file-name> //将指定文件添加到暂存区
git add *.js //提交所有.js格式文件
git add -f <file-name> // 强制添加 指定文件添加到暂存区
注:<file-name>指的是文件的名称
恢复(后悔药)
将暂存区的文件恢复到工作区
git reset <file-name> //从暂存区恢复指定到工作区
git reset -- . //从暂存区恢复所有文件到工作区
git reset --hard // 把暂存区的修改退回到工作区
查看工作区、暂存区的状态
git status
移除暂存区的修改
git rm --cached <file-name> //将本地暂存区的内容移除暂存区
将缓存区的文件,提交到本地仓库(版本库 )
git commit <file-name> ... "相关的记录信息" //将缓存区的指定文件提交到本地仓库
git commit -m "相关的记录信息" //将缓存区的所有文件提交到本地仓库
git commit -am '相关的记录信息' //跳过暂存区域直接提交更新并且添加备注的记录信息
git commit --amend '相关的记录信息' //使用一次新的commit,替代上一次提交,如果代码没有任何新变化,则用来修改上一次commit的提交记录信息
撤销commit提交
git revert HEAD //撤销最近的一个提交(创建了一个撤销上次提交(HEAD)的新提交)git revert HEAD^ //撤销上上次的提交
查看日志
查看历史提交(commit)记录
git log //查看历史commit记录
注:空格向下翻页,b向上翻页,q退出
git log --oneline //以简洁的一行显示,包含简洁哈希索引值
git log --pretty=oneline //查看日志且并且显示版本
git log --stat //显示每个commit中哪些文件被修改,分别添加或删除了多少行
查看分支合并图
git log --graph
查看版本线图
git log --oneline --graph
git版本控制(时光机)
回到指定哈希值对应的版本
git reset --hard <Hash>
注:<Hash> 是版本的哈希值
git reset --hard HEAD //强制工作区、暂存区、本地库为当前HEAD指针所在的版本
版本回退
git reset --hard HEAD~1 //后退一个版本
注:~后面的数字表示回退多少个版本
分支
查看分支
git branch //查看所有本地分支
git branch -r //查看所有远程分支
git branch -a //查看所有远程分支和本地分支
git branch --merged //查看已经合并的分支
创建分支(依然停留在当前的分支)
git branch <branch-name>
注: <branch-name> 是分支的名称
切换分支
git checKout <branch-name> //切换到指定分支,并更新工作区
git checkout - //切换到上一个分支
创建并切换分支(创建一个新的分支,并切换到这个新建的分支上)
git chechout -b <branch-name>
合并分支(合并某一个分支到当前分支)
git merge <branch-name>
删除分支
git branch -d <branch-name> //只能删除已经被当前分支合并的分支
git branch -D <>branch-name> //强制删除分支
删除远程分支
git push origin --delete <remote-branch-name>
注:<remote-branch-name> 远程分支名
远程仓库(团队协作)
克隆远程仓库(从远程仓库拉取代码)
git clone <url>
注:<url> 远程仓库的地址
本地库与远程库进行关联
git remote add origin <url>
注:<url> 远程仓库的地址
查看远程仓库地址别名
git remote -v
新建远程仓库地址别名
git remote add <alias> <url>
注:<alias> 远程仓库的别名<url> 远程仓库的地址
删除本地仓库中的远程仓库别名
git remote rm <alias>
注:<alias> 远程仓库的别名
重命名远程仓库地址别名
git remote rename <old-alias> <new-alias>注:<old-alias> 旧的远程仓库<new-alias> 新的远程仓库
把远程库的修改拉取到本地
git fetch <alias/url> <remote-branch-name> //抓取远程仓库的指定分支到本地,但没有合并
git merge <alias-branch-name> //将抓取下来的远程的分支,跟当前所在分支进行合并
git pull <alias/url> <remote-branch-name> //拉取到本地,并且与当前所在的分支进行合并注:<alias/url> 远程仓库的别名 或者是 远程仓库地址<remote-branch-name> 远程分支名
将本地的分支推送到远程仓库
提示!:在推送前要先拉取哦 git pull
git push <alias/url> <branch-name> //将本地的每个分支推送到远程仓库
git push <alias/url> --force //强行推送 当前分支到远程仓库,即使有冲突
git push <alias/url> --all //推送所有本地分支到远程仓库注:<alias/url> 远程仓库的别名 或者是 远程仓库地址<branch-name> 本地分支名
················· 若川简介 ·················
你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》10余篇,在知乎、掘金收获超百万阅读。
从2014年起,每年都会写一篇年度总结,已经写了7篇,点击查看年度总结。
同时,最近组织了源码共读活动,帮助1000+前端人学会看源码。公众号愿景:帮助5年内前端人走向前列。
识别上方二维码加我微信、拉你进源码共读群
今日话题
略。分享、收藏、点赞、在看我的文章就是对我最大的支持~