本人认为比较重要的一些 Git常用命令,主要供自己查阅使用。
远程仓库
添加远程仓库
git remote add origin git@server-name:path/repo-name.git #添加一个远程库
查看远程仓库
git remote #要查看远程库的信息
git remote -v #显示更详细的信息
推送分支
git push origin master #推送到远程master分支
抓取分支
git clone git@server-name:path/repo-name.git #克隆远程仓库到本地(能看到master分支)
git checkout -b dev origin/dev #创建远程origin的dev分支到本地,并命名为dev
git checkout origin/dev --track #与上面效果一样
git pull origin master #从远程分支进行更新
git fetch origin master #获取远程分支上的数据
抓取GitHub上某个pull request到本地
git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME
git remote add origin git@server-name:path/repo-name.git #添加一个远程库
查看远程仓库
git remote #要查看远程库的信息
git remote -v #显示更详细的信息
推送分支
git push origin master #推送到远程master分支
抓取分支
git clone git@server-name:path/repo-name.git #克隆远程仓库到本地(能看到master分支)
git checkout -b dev origin/dev #创建远程origin的dev分支到本地,并命名为dev
git checkout origin/dev --track #与上面效果一样
git pull origin master #从远程分支进行更新
git fetch origin master #获取远程分支上的数据
抓取GitHub上某个pull request到本地
git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME
git push origin master #推送到远程master分支
抓取分支
git clone git@server-name:path/repo-name.git #克隆远程仓库到本地(能看到master分支)
git checkout -b dev origin/dev #创建远程origin的dev分支到本地,并命名为dev
git checkout origin/dev --track #与上面效果一样
git pull origin master #从远程分支进行更新
git fetch origin master #获取远程分支上的数据
抓取GitHub上某个pull request到本地
git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME
git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME
$ git branch --set-upstream branch-name origin/branch-name
,可以建立起本地分支和远程分支的关联,之后可以直接git pull
从远程抓取分支。
另外,git pull
= git fetch
+ merge
to local
删除远程分支
$ git push origin --delete bugfix
To https://github.com/dijia478/bos
- [deleted] bugfix
# 或者直接push一个空分支
$ git push origin :bugfix
To https://github.com/dijia478/bos
- [deleted] bugfix
更新远程分支信息
项目往前推进的过程中,远程仓库上经常会增加一些分支、删除一些分支。 所以有时需要与远程同步下分支信息。
git fetch -p
历史管理
查看历史
git log --pretty=oneline filename #一行显示
git log -p -2 #显示最近2次提交内容的差异
git show cb926e7 #查看某次修改
版本回退
git reset --hard HEAD^ #回退到上一个版本
git reset --hard cb926e7 #回退到具体某个版
git reflog #查看命令历史,常用于帮助找回丢失掉的commit
git log --pretty=oneline filename #一行显示 git log -p -2 #显示最近2次提交内容的差异 git show cb926e7 #查看某次修改
版本回退
git reset --hard HEAD^ #回退到上一个版本
git reset --hard cb926e7 #回退到具体某个版
git reflog #查看命令历史,常用于帮助找回丢失掉的commit
用HEAD表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,HEAD~100
就是上100个版本。
管理修改
git status #查看工作区、暂存区的状态
git checkout -- <file> #丢弃工作区上某个文件的修改
git reset HEAD <file> #丢弃暂存区上某个文件的修改,重新放回工作区
查看差异
git diff #查看未暂存的文件更新
git diff --cached #查看已暂存文件的更新
git diff HEAD -- readme.txt #查看工作区和版本库里面最新版本的区别
git diff <source_branch> <target_branch> #在合并改动之前,预览两个分支的差异
git diff #查看未暂存的文件更新 git diff --cached #查看已暂存文件的更新 git diff HEAD -- readme.txt #查看工作区和版本库里面最新版本的区别 git diff <source_branch> <target_branch> #在合并改动之前,预览两个分支的差异
使用内建的图形化git:gitk
,可以更方便清晰地查看差异。当然 Github 客户端也不错。
删除文件
git rm <file> #直接删除文件
git rm --cached <file> #删除文件暂存状态
储藏和恢复
git stash #储藏当前工作
git stash list #查看储藏的工作现场
git stash apply #恢复工作现场,stash内容并不删除
git stash pop #恢复工作现场,并删除stash内容
分支管理
创建分支
git branch develop #只创建分支
git checkout -b master develop #创建并切换到 develop 分支
合并分支
git checkout master #切换到主分支
git merge --no-ff develop #把 develop 合并到 master 分支,no-ff 选项的作用是保留原分支记录
git branch -d develop #删除 develop 分支
标签
显示标签
git tag #列出现有标签
git show <tagname> #显示标签信息
git stash #储藏当前工作 git stash list #查看储藏的工作现场 git stash apply #恢复工作现场,stash内容并不删除 git stash pop #恢复工作现场,并删除stash内容
分支管理
创建分支
git branch develop #只创建分支
git checkout -b master develop #创建并切换到 develop 分支
合并分支
git checkout master #切换到主分支
git merge --no-ff develop #把 develop 合并到 master 分支,no-ff 选项的作用是保留原分支记录
git branch -d develop #删除 develop 分支
标签
显示标签
git tag #列出现有标签
git show <tagname> #显示标签信息
git branch develop #只创建分支 git checkout -b master develop #创建并切换到 develop 分支
合并分支
git checkout master #切换到主分支
git merge --no-ff develop #把 develop 合并到 master 分支,no-ff 选项的作用是保留原分支记录
git branch -d develop #删除 develop 分支
标签
显示标签
git tag #列出现有标签
git show <tagname> #显示标签信息
显示标签
git tag #列出现有标签
git show <tagname> #显示标签信息
创建标签
git tag v0.1 #新建标签,默认位 HEAD git tag v0.1 cb926e7 #对指定的 commit id 打标签 git tag -a v0.1 -m 'version 0.1 released' #新建带注释标签
操作标签
git checkout <tagname> #切换到标签
git push origin <tagname> #推送分支到源上
git push origin --tags #一次性推送全部尚未推送到远程的本地标签
git tag -d <tagname> #删除标签
git push origin :refs/tags/<tagname> #删除远程标签
Git 设置
设置 commit 的用户和邮箱
git config user.name "xx" #设置 commit 的用户
git config user.email "xx@xx.com" #设置 commit 的邮箱
git commit --amend --author "Jark Wu <imjark@gmail.com>" #修改上次提交的用户信息
git config format.pretty oneline #显示历史记录时,每个提交的信息只显示一行
设置 commit 的用户和邮箱
git config user.name "xx" #设置 commit 的用户 git config user.email "xx@xx.com" #设置 commit 的邮箱 git commit --amend --author "Jark Wu <imjark@gmail.com>" #修改上次提交的用户信息 git config format.pretty oneline #显示历史记录时,每个提交的信息只显示一行
GitHub 教程系列文章:
通过GitHub创建个人技术博客图文详解 http://www.linuxidc.com/Linux/2015-02/114121.htm
GitHub 使用教程图文详解 http://www.linuxidc.com/Linux/2014-09/106230.htm
使用 GitHub / GitLab 的 Webhooks 进行网站自动化部署 http://www.linuxidc.com/Linux/2016-06/131993.htm
多个GitHub帐号的SSH key切换 http://www.linuxidc.com/Linux/2016-05/131080.htm
如何在同一台电脑上使用两个GitHub账户 http://www.linuxidc.com/Linux/2016-05/131079.htm
利用GitHub搭建个人Maven仓库 http://www.linuxidc.com/Linux/2016-04/130197.htm
一分钟认识GitHub http://www.linuxidc.com/Linux/2015-11/125089.htm
分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm
GitHub使用操作指南 http://www.linuxidc.com/Linux/2016-10/135782.htm
GitHub使用方法入门基础 http://www.linuxidc.com/Linux/2017-05/144084.htm
GitHub 的详细介绍:请点这里
GitHub 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149316.htm