分支(branch)操作相关命令
查看本地分支:$ git branch
查看所有分支列表:$ git branch -a
查看当前分支:$ git branch -v
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]
ls :查看目录列表
cd 目录:切换到目录
pwd:显示当前目录
rm 文件名:删除该文件
mkdir 目录名:创建目录
rmdir 目录名:删除目录
git init:将当前目录变成Git可以管理的仓库
git add . :添加所有文件
git commit -m “备注信息”:为添加的文件写上注释
git status:查看当前文件的状态
git diff 文件名:查看文件修改内容
git log:显示由近到远的提交日志
git log --pretty=oneline:输出比上边命令简介的信息
cat 文件名:查看文件内容
获取远程分支并创建本地分支:
git checkout -b dev(本地分支名) origin/dev(远程分支名)
将以Controller结尾的文件的所有修改添加到暂存区:
$ git add *Controller
将所有以Hello开头的文件的修改添加到暂存区:
$ git add Hello*
将暂存区的修改提交到仓库,后面添加上有意义的注释信息:
$ git commit -m “comment”
在file被修改了还未提交的时候查看修改的部分:
$ git diff file
查看git的commit信息,每次提交的信息包括注视在内,从最新提交到最久提交:
$ git log
Git的版本号(commit id)是SHA1值ea34578d5496d7dd233c827ed32a8cd576c5ee85
退回到相对于当前版本的上一个版本 HEAD 表示当前版本:
$ git reset --hard HEAD^
退回到相对于当前版本的上上一个版本 HEAD 代表当前版本:
$ git reset --hard HEAD^^
退回到相对于当前版本的上 100 个版本去 HEAD 表示当前版本:
$ git reset --hard HEAD~100
退回到指定的版本 这里不需要全部写commit id Git 回去自动适配:
$ git reset --hard 3628164
在退回到旧版本之后可以查看旧版本之前的提交日志
当我们想从一个旧版本退回到新版本但是我们关闭了shell窗口,不能查看之前的commit id了,就可以通过:
$ git reflog //查看到之前的版本的commit id
从Git版本库中删除文件(同时从文件系统中删除文件) $ git status 正常:
$ git rm file
从文件系统中删除文件(Git 中还是有记录),$ git status 的时候Git 会告诉你有一个file 被删除了:
$ rm file
创建SSH rsa key
$ ssh-keygen -t rsa -C “youremail@example.com” // 创建SSH Key
一路回车就好,
如果顺利会在user下UserName目录中生成一个.ssh目录里面有id_rsa和id_rsa.pub两个文件
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以告诉他人还有在github上添加的也是这个公钥
登陆GitHub,打开“Account settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了
将本地的master分支推送到远程的master分支中:
$ git push -u origin master
本地切换到dev分支然后将本地的dev分支推送到远程:
$ git push -u origin dev
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
$ git merge --no-ff -m “comment” dev
// 准备合并dev分支,请注意–no-ff参数,表示禁用Fast forward
冻结当前的分支修改:
$ git stash
列出所有的工作现场存储:
$ git stash list
恢复工作现场(只有一个的时候可以省略后面的,如果有多个可以恢复指定的某一个stash)但是不删除存储中的stash:
$ git stash apply stash@{n}
删除存储的工作现场(只有一个的时候可以省略后面的,如果又多个就指定删除某一个):
$ git stash drop stash@{n}
恢复的同时把stash内容也删了(只有一个的时候可以省略后面的,如果又多个就指定删除某一个):
$ git stash pop stash@{n}
删除某一个分支,前提是在该分支和产生该分支的主分支已经合并了(merge):
$ git branch -d branchName
删除某一个分支,无论是否合并都强制删除:
$ git branch -D branchName
建立本地dev 分支和远程dev分支的联系:
$ git branch --set-upstream dev origin/dev
本地分支推送到远程仓库:
$ git push origin branch-name
在当前版本HEAD上打一个名称为v1.0 的标签:
$ git tag v1.0
查看所有标签,会列表出所有的标签名:
$ git tag