linux git
linux 版本:
通过 uname -a 命令查到的linux版本信息:通过Linux mi-OptiPlex-7040 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux,Ubuntu 14.04.1 64位操作系统
安装Git:
安装命令: sudo apt-get install git
(windows下的git下载地址:https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit)
Git全局配置;
git安装好后,需要配置自己的用户名和邮箱,配置命令如下:git config --global user.name myName; git config --global user.email myName@163.com
Git基本使用:
git init (当前目录初始化为一个git仓库)
git pull origin master 可将远程分支下载到本地,并自动合并
git checkout -b feature_shixi origin/feature_shixi (将远程分支下载到本地并进行切换) 原来git branch工具显示的只是本地的分支,不会显示origin/master
git push --set-upstream origin 分支名 (将本地分支推送到远程不存在的分支)
git add ...file... (把文件添加到本地仓库)
revert 某一个文件: git add -i (查看 git add 命令添加的文件并做相应的修改)、revert、输入添加信息的对应id(1 2 3 之类的)、回车(退出revert子命令,退回到git add -i 命令下) :
备注:该操作只是将添加到缓存区的内容返回到工作区,并没有将修改删除。
git commit -m '修改说明' (把文件提交到本地仓库)
git status 查看修改或者提交信息
git diff readme.txt 查看现在的readme.txt文件与上一侧 git add 命令之后的readme.txt文件的区别
gitk 窗口查看当前的提交分支
回滚: git reset --hard HEAD^ / HEAD^^ / HEAD^^^/ HEAD~100 ,分别表示退回到一个提交版本、退回两个提交版本、退回三个提交版本、退回100个提交版本。其中,HEAD表示当前版本。
git reset --hard commit_id 重置到任意一个提交版本,包括子版本(未来版本)
git reset --soft commit_id 重置到以前的某一个版本,但commit的信息退回到缓存区(staging 或 inex 区)
git log 查看 commit 历史记录
git reflog 查看历史命令,记录你的每一次操作,从里面可以找到版本号
撤销修改:1、只有工作区的修改,暂存区没有add信息:通过 git checkout -- readme.txt 命令即可将工作区的修改撤销;
2、git add后在工作区作了修改:git checkout -- readme.txt会将工作区的修改撤销,但不会撤销add的信息;
3、在2的情况下,如果想要撤销add的信息,有两种方式:通过 git add -i | revert | 数字 | quit 可将add的信息退回到工作区,然后通过 git checkout -- readme.txt 将工作区的修改撤销。
通过 git reset HEAD file_name 可将add到暂存区的内容 重新放回到工作区,然后通过 git checkout -- readme.txt 将工作区的修改撤销
git log --oneline
git rebase dev_feature
git rebase --abort
git cherry-pick commit_id
删除文件:
通过 rm file_name 来删除文件,随后 git rm file_name + git commit -m 'delete a file' 提交删除
通过 rm file_name 删除文件后,发现删除错了,可通过 git checkout -- file_name 来撤销修改(删除)
推送: 将本地的项目信息push到刚在github上建立的空仓库: git push -u origin master (远程库origin的master分支)
创建新分支并切换: 1、 git branch dev ; git checkout dev;
2、git checkout -b dev ; 该命令完成上述两条命令的工作
查看当前分支: git branch 命令查看所有分支,当前分支前面有个 × ,有的linux系统的当前分支会被标注位绿色
合并分支: 切换到主分支 git checkout master ,进行合并 git merge dev (将dev分支合并到master分支上) 提示:linux窗口会提示 ”Fast-forward
“ 该模式指快进模式:将master指向了dev的最新提交,合并速度很快。
留下合并标记:git merge --no-ff -m 'merge with signal' dev
删除分支: git branch -d feature_name
(丢弃一个没有被合并过的分支时,通过 git branch -D feture_name)
创建与远程版本库某分支相关联的本地分支: git checkout -b dev origin/dev
将本地分支与远程分支关联:git branch --set-upstream feature_name origin/feature_name
工作暂存: git stash :将当前工作区的修改stash保存起来;随后进行其他修改;其他修改完后,通过git checkout feature_name 切换回原分支。通过 git stash list 可以查看stash内容 ;通过 git stash apply + git stash drop命令 或者 git stash pop 都可将stash内容还原,并删除stash内容。
打标签: git tag v1.0 (默认在当前分支的最新commit上打标签) / git tag v0.9 3f3f28ebdb (commit号) 在某个commit上打标签 / git tag -a v0.8 -m '0.8版本发布' commit_number 创建标签时,写说明文字。
git tag 查看所有标签信息 / git show tag_name 查看对应tag的commit信息。
git tag -d v1.0 删除v1.0标签
git push origin v1.0 将本地标签推送到远程库
git push origin --tags 一次性将本地素有标签推送到远程。
git tag -d v0.9 + git push origin :refs/tags/v0.9 将远程标签v0.9删除
在dev分支上,通过 git rebase temp 命令可将dev分支rebase到 dev 分支上。
stash 命令
git stash //将当前工作区的修改 stash 起来
git stash list //查看所有的stash内容
git stash apply stash@{0} //将某个stash现场还原到工作区
git stash drop stash@{1} //将某个stash删除
git stash pop //将当前最后的stash还原到工作区