← 返回文章

六、Git 常用操作指令总结

安装及配置: 配置用户名:git config --global user.name"你的名字" 配置e

安装及配置:

配置用户名: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。

合并多个连续 commit (将 commit 62ecb3 ~ 76cada 合并到master上)

$ git log --oneline
5a0ffbc (HEAD -> test) C 功能的提交記錄
5edd113 B 功能的提交記錄
f748188 A 功能的提交記錄

只选择 5edd113 和 5a0ffbc 这两个提交记录合并至 master。

$ git checkout master
$ git cherry-pick 5edd113 5a0ffbc -n

git cherry-pick 後接上參數 -n 或 --no-commit,這樣就可以把這兩個 Commit 接到(可說是複製到) master 的尾巴上。不管是已存在或新增的檔案,這兩個 Commit 只是以暫存的方式存在,尚未提交。

与标签有关的:

为当前版本打标签: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

END