Git 常用操作指令
安装及配置:
配置用户名:git config --global user.name
"你的名字"
配置e-mail:git config --global user.email
"你的邮箱"
远程分支:
查看远程分支:git remote -v
查看远程所有的分支:git branch -a
(红色代表当前所在的分支)
拉取远程分支:git pull origin develop
(develop是分支)
合并远程分支:git pull --rebase origin master
(--rebase选项告诉Git提交移到同步了中央仓库修改后的master分支的顶部,这样不会生成一个合并提交)
推送远程分支:git push -u origin develop
(-u 表示设置本地跟踪远程对应的分支,下次直接使用 git push 就可以了)
从远程仓库直接创建一个分支:git checkout -b develop master
创建一个新的远程分支,-b选项表示如果分支还不存在则新建分支
刷新远程分支:git fetch origin
(有时候 git branch -r 无法看到所有的远程分支,是因为没有刷新)
拉取远程分支:git checkout -b <name> origin/<name>
与添加有关的:
将当前目录变为仓库:git init
将文件添加到暂存区:git add
文件名 [可选:另一个文件名]
将暂存区提交到仓库:git commit –m
"描述"
将工作区提交到仓库:git commit –am
"描述"
创建忽略文件
.gitignore 添加要忽略的文件名
与查询有关的:
查询仓库状态:git status
比较文件差异(工作区和缓存区对比):git diff
文件名
比较文件差异(缓存区和commit版本对比):git diff --cached
文件名
查看仓库历史记录(详细):git log
查看仓库历史记录(单行):git log --pretty=oneline
或 git log --oneline
查看所有版本的commit ID:git reflog
与撤销有关的:
删除暂存区:git rm --cached 文件名
(--cached 表示只删除缓存区中的内容)
撤销工作区的修改:git checkout -- 文件名
撤销暂存区的修改:git reset HEAD 文件名
回退到历史版本:git reset --hard 该版本ID
回退到上个版本:git reset --hard HEAD^
上上版本是HEAD^^,也可用HEAD~2表示,以此类推
回退单个文件到某一个commit: git reset "commit-id" "filename"
git 合并指定分支上的 commit:
合并单个 commit (将 commit 62ecb3 合并到 master 分支上)
git checkout master
git cherry-pick 62ecb3
合并多个连续 commit (将 commit 62ecb3 ~ 76cada 合并到master上)
git checkout -b newbranch 62ecb3
git rebase —onto master 76cada^
76cada^ 表示从 76cada 的 commit 开始合并(作为新的commit)。这样就完成了 76cada 到 62ecb3
合并到 master。
与标签有关的:
为当前版本打标签:git tag
标签名
为历史版本打标签:git tag
标签名 该版本ID
指定标签说明:git tag –a 标签名 –m "标签说明" [可选:版本ID]
查看所有标签:git tag
查看某一标签:git show 标签名
删除某一标签:git tag –d 标签名
修改最后一次commit提交的信息:git commit --amend
分支管理:
创建分支:git branch dev
切换分支:git checkout dev
创建并切换分支:git checkout -b dev
删除分支:git branch -d dev
在分支上提交版本:git commit -a -m 'dev1'
合并分支:git merge dev
分支合并后显示log:git log --oneline --graph --decorate
准备切换到其他分支,保存当前分支内容:git stash
再次切换回来后应用保留的内容:git stash apply
丢掉保存的内容:git stash drop
使用并丢掉保存的内容:git stash pop
将 A 分支上的一次 commit 合并到 B 分支上 git cherry-pick ( A 分支的一次 commit )
Rebase 的用法
合并最新的四个commit git rebase -i HEAD~4
(HEAD~4 就是合并后生成新的跟在这个后面)
减少分支的merge记录 (当前分支不是基于最新的master做的修改) git rebase master
修改最后的commit git commit --amend
与GitHub有关的:
先有本地库,后有远程库,将本地库push到远程库
关联本地仓库和GitHub库:git remote add origin 网站上的仓库地址
第一次将本地仓库推送到GitHub上:git push –u origin master
先有远程库,后有本地库,从远程库clone到本地库
从远程库克隆到本地:git clone 网站上的仓库地址
SSH Key
生成SSH Key:ssh-keygen –t rsa –C "你的邮箱@xx.com"
生成Key时弹出选项,回车选择默认即可。
Key保存位置:/root/.ssh
登陆GitHub,创建new SSH key,其内容为/root/.ssh/id_rsa.pub中文本
已经有了本地库和远程库,二者实现同步
本地库的改动提交到远程库:git push origin master
更新本地库至远程库的最新改动:git pull