Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

daohewang/Git

Repository files navigation

玩转git命令行

git基础篇

  • workspace: 工作区
  • Index/Stage: 暂存区
  • Repository: 仓库区/本地仓库
  • Remote: 远程仓库

git命令篇

配置命令 config 1.说明:用于配置本机的git的相关属性
2.语法:git config [选项] 属性名 属性值
3.选项:--global 表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址
--list:查看所有配置信息
4.示例:

$git config --global user.name "your name" $git config --global user.name "your emal"

cd命令 1.说明:转换当前目录
2.语法:cd 目录名(包括相对目录和绝对目录)
3.示例:cd/d/repository (意思是转换到d盘repository目录下进行操作)

mkdir命令
1.说明:创建目录
2.语法:无
3.示例:mkdir mygit (意思是在文件夹下创建一个子文件夹)

pwd命令
1.说明:显示当前目录

init命令
1.说明:初始化当前目录,将当前目录变成git可以管理的仓库
2.语法:git init

add命令
1.说明:提交所有的修改放到暂缓区
2.语法:git add [文件名]
3.示例:git add readme.txt

commit命令
1.说明:把暂存区的所有修改提交到分支
2.语法:git commit [选项]
3.选项:
-m: 表示为本次添加说明
-a:相当于直接执行,即先执行add命令再执行commit
4.示例:git commit -m "add readme file"

status命令
1.说明:查看修改的文件状态
2.语法:git status

diff命令
1.说明:比较文件修改的内容 2.语法:git diff [文件名] 3.示例:git diff readme.txt

log命令
1.说明:查看历史纪录
2.语法:git log
3.选项: --pretty=oneline 显示commit_id(长)+提交时的说明
--graph 显示分支信息
--abbrev-commit 显示commit_id+提交说明
-num 表示数字,查看最近提交
4.示例:

##查看日志
git log
##查看日志,显示commit_id content
git log --pretty=oneline
##查看日志,显示commit_id content,并显示分支提交信息
git log --graph --pretty=oneline --abbrev-commit
##查看最近一次提交
git log --graph --pretty=oneline --abbrev-commit -1
##查看日志用这个就够了
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold >blue)<%an>%Creset' --abbrev-commit

reset版本回退命令
1.说明:将文件的版本回退到以前的版本
2.语法:git reset [选项] [HEAD^ (^表示上个版本,^^表示上上个版本,以此类推)or HEAN~(1-100)]
3.选项: --hard
4.示例:

git reset --hard HEAD^^ #回退到上上个版本
git reset HEAD file #把暂存区的file的修改撤销掉,重新放回工作区

reflog命令
1.说明:显示历史命令
2.示例:git reflog

cherry-pick命令
1.说明:整理提交记录(知道所需要的提交记录且知道这些记录的哈希值)
2.语法:git cherry-pick <提交号>

rebase重新排序命令
1.说明:在不知道你想要的提交记录的哈希值时找到你想要的记录
2.语法: git rebase -i HEAD~num(会出现编辑界面)
3.参数:-i

checkout命令
1.说明:用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以"一键还原"
从版本库中检出文件或切换分支
2.语法:git checkout [选项] (file or 分支名称) (远程分支名称)
3.选项:
-- #不切换到另一分支
-b #创建并切换分支
4.示例:

##从版本库中检出文件覆盖到工作区
git checkout -- git常用命令.enmd
##从主分支中创建并切换分支
git checkout -b dev
##从主分支中创建并切换分支,同时关联到远程仓库origin的dev分支
git checkout -b dev origin/dev
##切换到master分支
git checkout master

branch命令
1.说明:分支管理
2.语法:git branch [分支名称]
3.选项:
-a:查看本地及远程仓库中的分支
-d:删除分支
-D:强行删除分支
--set-upstream-to=origin/dev:将远程仓库的分支与本地仓库的分支管理
4.示例:

##创建dev分支
git branch dev
##将本地的dev分支与远程仓库origin的dev分支关联
git branch --set-upstream-to=origin/dev dev
##列出所有分支,当前分支前面会标一个*号
git branch

merge命令
1.说明:分支合并
2.语法:git merge [分支名称]
3.选项: --no-ff: 禁用Fast forward
-m: 在禁用fast forward
4.示例:git merge dev

stash命令
1.说明:暂存当前工作现场
2.语法:git stash [子命令]
3.子命令:
list:查看存储的工作现场
apply [stash_id]:恢复工作现场,但是恢复后,stash内容并不删除
drop [stash_id]:删除已存储的工作现场
pop [stash_id]:恢复工作现场,并删除stash
4.示例:

##保存当前工作现场
git stash
##查看已保存的工作现场
git stash list
##恢复现场(单个现场是使用)
git stash apply
##恢复指定的现场 git stash apply stash@{0}
##删除保存的现场
git stash drop
##删除已保存的指定的现场
git stash drop stash@{0}
##恢复现场并从暂存空间删除
git stash pop
##恢复指定的现场并从暂存空间删除
git stash pop stash@{0}

rm删除命令
1.说明:将文件从版本库中移除,移除后要commit
2.语法:git rm test.txt

remote命令
1.说明:查看远程仓库
2.语法:git remote [远程仓库的别名] [远程仓库的url]
3.选项:-v #显示更详细的信息(抓取和推送的url)
4.子命令:add #添加远程仓库(即关联本地仓库和远程仓库)需要在本地仓库的主目录中执行该命令
5.示例:

##通过ssh方式添加远程仓库
git remote add origin https://github.com/frainmeng/learn.git
##查看远程仓库
git remote -v

push命令
1.说明:把本地库的内容推送到远程
2.语法:git push [远程仓库名] [本地仓库名 or 标签名]
3.选项:-u: 初次推送使用,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分>支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
4.示例:

##初次推送master分支到远程仓库
git push -u origin master
##将dev分支推送至远程仓库
git push origin dev
##将本地标签推送至远程仓库
git push origin v1.0
##将本地所有标签推送至远程仓库
git push origin --tags
##将远程仓库中的标签删除
git push origin :refs/tags/v1.0

clone命令
1.说明:从远程仓库克隆到本地仓库
2.语法:git clone 远程仓库url
3.示例:git clone git@github.com:frainmeng/learn.git

tag标签
1.说明:标签操作
2.语法:git tag [tagname or commit_id]
3.选项:
-a:配合-m使用,附加说明信息
-m:配合-a使用,附加说明信息
-d:删除标签
-s:用私钥签名一个标签

4.示例:

##创建标签
git tag v1.0
##在指定的(提交)位置创建标签
git tag v0.9 67833a4
##查看所有标签
git tag
##为标签附加说明西悉尼
git tag -a v0.9 -m "说明信息"67833a4
##删除标签
git tag -d v0.9

show命令
1.说明:显示标签的详细信息
2.示例:git show v1.0 #查看标签的详细信息

Git Tag标签管理
标签的创建、删除
git tag t1,从当前分支创建一个名为t1的标签
git tag -d t1,删除名为t1的标签

git技巧篇

1.如何修改远程仓库地址

  • 修改命令:git remote set-url origin [url]
  • 先删后加: git remote rm origin git remote add origin [url]
  • 直接修改config文件 ` git config -e [--global]

2.如何提交文件夹到github远程仓库

  • $ git add floder_name/*.*
  • $ git add floder_name/*

3.如何撤销一个合并

  • $ git merge --abort
  1. 查看图片的差别
    图片差别

5.删除本地分支使用:

$ git branch -d branch_name

注意:该-d选项是一个别名--delete,只有当分支已经在其上游分支中完全合并时,它才会删除该分支。你也可以使用-D这个别名来--delete --force删除分支"不管合并状态"。
删除远程分支
从Git v1.7.0开始,可以使用远程分支删除

$ git push origin --delete <branch_name>

5.GitLib权限管理
GitLib有五种身份权限,分别是:
くろまる Owner 项目所有者,拥有所有的操作权限
くろまる Master 项目的管理者,除更改、删除项目元信息外其它操作均可
くろまる Developer 项目的开发人员,做一些开发工作,对受保护内容无权限
くろまる Reporter 项目的报告者,只有项目的读权限,可以创建代码片断
くろまる Guest 项目的游客,只能提交问题和评论内容

6.命名规则 くろまる 每次提交必须写明注释,如果是修复Bug,请加上Bug号
くろまる 创建特性分支,名称要以f-开头,加上特性名
くろまる 创建发布分支,名称要以r-开头,加上预发布版本号
くろまる 创建Bug修复分支,名称要以b-开头,加上Bug号
くろまる 创建标签,名称要以t-开头,加上发布版本号
くろまる 合并分支时必须使用--no-ff参数,以保留合并历史轨迹

7.特性分支
从develop分支创建,用于特性开发,完成后要合并回develop分支。
操作过程:
git checkout -b newfeature develop,从develop分支创建newfeature特性分支
git checkout develop,开发完成后,需要合并回develop分支,先切换到develop分 支
git merge --no-ff newfeature,合并回develop分支,必须加--no-ff参数 git branch -d newfeature,删除特性分支
git push origin develop,把合并后的develop分支推送到远程仓库
分支关系类似下图:

8.发布分支
从develop分支创建,用于预发布版本,允许小bug修复,完成后要合并回develop和master。
操作过程: git checkou -b release-1.2 develop,创建一个发布分支
git checkout master,切换到master分支,准备合并
git merge --no-ff release-1.2,把release-1.2分支合并到master分支
git tag 1.2,从master分支打一个标签
git checkou develop,切换到develop分支,准备合并
git merge --no-ff release-1.2,把release-1.2分支合并到develop分支
git branch -d release-1.2,删除这个发布分支

9.修复分支
从master分支创建,用于生产环境上的Bug修复,完成后要合并回develop和master。
操作过程:
git checkout -b hotfix-1.2.1 master,从master分支创建一个Bug修复分支
git checkout master,切换到master分支,准备合并
git merge --no-ff hotfix-1.2.1,合并到master分支
git tag 1.2.1,为master分支创建一个标签
git checkout develop,切换到develop分支,准备合并
git merge --no-ff hotfix-1.2.1,合并到develop分支
git branch -d hotfix-1.2.1,删除hotfix-1.2.1分支
分支关系类似下图:

About

总结使用git过程中的点滴经验

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

AltStyle によって変換されたページ (->オリジナル) /