git bash 命令行
2016-02-24 00:00
656 查看
检查已有的配置信息:git config --list
检查当前文件状态:git status
跟踪新文件
忽略某些文件
提交更新
跳过使用暂存区域
移除文件
查看提交历史
表 2-1 列出了常用的格式占位符写法及其代表的意义。
查看当前的远程库
查看文件
撤销工作区修改
撤销暂存区修改
删除:
创建SSH Key:
在github中添加sshkey:
关联远程仓库:
错误提示:
推送代码:
克隆代码:
git bash复制粘贴:
创建分支dev:
查看分支:
合并分支,我们把dev分支的工作成果合并到master分支上:
删除分支:
保存贮藏:
销毁分支:
不一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
打标签:
检查当前文件状态:git status
跟踪新文件
git add file 只要在 “Changes to be committed” 这行下面的,就说明是已暂存状态。 git add 命令(这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)
忽略某些文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。来看一个实际的例子: $ cat .gitignore *.[oa] *~ 第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
提交更新
git commit 另外也可以用 -m 参数后跟提交说明的方式,在一行命令中提交更新: $ git commit -m "case...." git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。
跳过使用暂存区域
$ git commit -a -m 'case....'
移除文件
要在 Git 中对文件改名,可以这么做:$ git mv file_from file_to 其实,运行 git mv 就相当于运行了下面三条命令: $ mv README.txt README $ git rm README.txt $ git add README
查看提交历史
git log 我们常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新: $ git log -p -2 还有许多摘要选项可以用,比如 --stat,仅显示简要的增改行数统计: $ git log --stat
表 2-1 列出了常用的格式占位符写法及其代表的意义。
选项 说明 %H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串 %T 树对象(tree)的完整哈希字串 %t 树对象的简短哈希字串 %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串 %an 作者(author)的名字 %ae 作者的电子邮件地址 %ad 作者修订日期(可以用 -date= 选项定制格式) %ar 作者修订日期,按多久以前的方式显示 %cn 提交者(committer)的名字 %ce 提交者的电子邮件地址 %cd 提交日期 %cr 提交日期,按多久以前的方式显示 %s 提交说明 用 oneline 或 format 时结合 --graph 选项,可以看到开头多出一些 ASCII 字符串表示的简单图形,形象地展示了每个提交所在的分支及其分化衍合情况。在我们之前提到的 Grit 项目仓库中可以看到: $ git log --pretty=format:"%h %s" --graph
查看当前的远程库
$ git remote -v
查看文件
cat file
撤销工作区修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况: 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次git commit或git add时的状态。 //git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。
撤销暂存区修改
Git同样告诉我们,用命令git 3ff0 reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区: $ git reset HEAD readme.txt
删除:
$ rm file//删除工作区的文件 1.$ git commit -m "remove file"//从版本库中删除该文件 2.$ git checkout -- file //如果工作区删除错了只需要从版本库中还原
创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
在github中添加sshkey:
setting中选择SSH keys ,然后New SSH key,title随便取,key里面粘贴id_rsa.pub中的内容.
关联远程仓库:
$ git remote add origin git@github.com:karlwangshengyi/wsy.git
错误提示:
git init 产生的目录解释 error: src refspec master does not match any. 引起该错误的原因是,目录中没有文件,空目录是不能提交上去的 error: insufficient permission for adding an object to repository database ./objects 服务端没有可写目录的权限 错误提示:fatal: remote origin already exists. 解决办法:$ git remote rm origin 错误提示:error: failed to push som refs to ........ 解决办法:$ git pull origin master //先pull 下来 再push 上去
推送代码:
$ git push origin master
克隆代码:
$ git clone git@github.com:karlwangshengyi/wsy.git //你也许还注意到,GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址。 //实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。 //使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令, //但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
git bash复制粘贴:
右键,属性,设置快速编辑模式。cd ..返回上一级。
创建分支dev:
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令: $ git branch dev $ git checkout dev //切换分支 Switched to branch 'dev'
查看分支:
git branch //git branch命令会列出所有分支,当前分支前面会标一个*号。
合并分支,我们把dev分支的工作成果合并到master分支上:
$ git merge dev
删除分支:
$ git branch -d dev
保存贮藏:
$ git stash //保存当前的工作环境,临时修改bug时可能保存当前环境然后新建临时分支解决问题,提交后删除bug分支,再继续修复当前问题 $ git stash list //查看工作现场 工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法: 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除; 另一种方式是用git stash pop,恢复的同时把stash内容也删了:
销毁分支:
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
不一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
master分支是主分支,因此要时刻与远程同步; dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步; bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug; feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
打标签:
命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id; git tag -a <tagname> -m "blablabla..."可以指定标签信息; git tag -s <tagname> -m "blablabla..."可以用PGP签名标签; 命令git tag可以查看所有标签。 git show <tagname>查看标签信息。 命令git push origin <tagname>可以推送一个本地标签; 命令git push origin --tags可以推送全部未推送过的本地标签; 命令git tag -d <tagname>可以删除一个本地标签; 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
相关文章推荐
- 2016新年Bash的CVE-2014-6271漏洞修复经历
- 网易公共课Linux Shell脚本应用学习笔记
- 在终端下使用cocoapod-pod install时出现-bash: pod: command not found 的解决办法
- 部署 Windows PowerShell Web 访问
- shell for in 用法总结
- shell打包
- Remote shell with telnet on windows platform
- CENTOS 6.6初始化SHELL脚本
- shell 标示符
- Linux中profile、bashrc、bash_profile之间的区别和联系
- Powershell 命令集 cmdlets
- linux修改shell为zsh
- vim 打开文件末尾带有^M的解决办法
- powershell快捷键
- adb shell 访问真机手机数据库文件
- adb shell模拟点击事件 input
- CocoaPod出现-bash: pod: command not found 解决办法
- shell 字符串
- PowerShell 在线教程
- 常用shell命令