git命令大集合
git 忽略配置
全局忽略DS_Store: .vi ~/.gitignore_global
在gitignore_global中写入:
.DS_Store
*/.DS_Store
.vi ~/.gitconfig
配置.gitconfig 文件如下:
[user]
name = xiaoronglv
email = xxxxx@gmail.com
[push]
default = matching
[core]
excludesfile = /Users/holy/.gitignore_global
其中:/Users/holy 可以在命令行输入pwd即可查看。
详见:http://blog.csdn.net/que_li/article/details/52918545
git 使用整理
密钥生成
cd ~/.ssh //检查本机中是否有公钥信息
mkdir key_backup
cp id_rsa*key_backup
rm id_rsa //删除已有公钥
"新生成公钥"
ssh-keygen -t rsa -C "git注册账号邮箱" //回车后会让输入用户名,再回车输入密码,在是确认密码
cat ~/.ssh/id_rsa.pub //显示刚生成的公钥 /*将公钥添加到本地*/
<windows>
clip < ~/.ssh/id_rsa.pub
<Mac>
pbcopy < ~/.ssh/id_rsa.pub
<Linux>
xclip -sel clip < ~/.ssh/id_rsa.pub
然后在 .ssh文件中的 id_rsa就为公钥
把公钥添加到coding中
然后运行 ssh -T git@git.coding.net 看是否已经联通
上传文件到项目
电脑中创建一个空文件,不要以中文命名。
打开电脑cmd命令框
cd 文件目录 //配置文件根目录
git init //初始化
git remote add origin 远程项目地址 //链接远程服务器
git add . //上传目录下所有文件
git commit -m "第一次上传" //提交,并注释
git pull origin 分支 //链接远程主机分支到本地
git push origin master //上传本地所有文件到master分支
git push -u origin 分支 // 当远程存在多个分支时,使用-u
本地分支
git branch //查看本地所有分支
git branch xxxx //创建xxxx分支
git checkout xxxx //切换到分支xxxx
git branch -d xxxx //删除本地xxxx的分支,注意需要在非删除分支下 切换分支时提示you need to resolve your current index first
git reset --merge
克隆代码到本地
git clone 远程地址 // 下载远程代码到本地
git clone 远程地址 -b xxxx // 克隆远程某分支上的代码,xxxx为分支名
删除文件
clone远程文件后,删除需要删除的文件,然后
git add --all
删除远程仓库文件及文件夹
git rm -r --cached ignore_file //删除缓存
git rm -r --cached a/.txt //删除a目录下的2.txt文件
git rm -r --cached a // 删除a目录
git commit -m "删除a目录下的2.txt文件"
git push
查询跟踪
git status
反馈:
nothing to commit,working directory clean // 没有提交,项目很干净
changes not staged for commit // 有红字提示,项目被修改,但是未被暂存
changes to be committde // 绿字提示,项目已经被暂存
远程库操作
git remote // 列出远程分支
git remote -v // 列队远程分支对应的url
git remote add xxx url // 创建远程地址为url的xxx分支
git remote remove xxx //删除远程分支xxx
git remote set-url xxx url // 将xxx的远程地址变更为url
config,设置多个密钥到本地
//第一个密钥使用默认形式,第二个密钥配置如下
Host gitlab地址 andy // andy为需要的名称
HostName gitlab地址
User git
Port 22
IdentityFile ~/.ssh/gitlab_id_rsa // 密钥地址
rebase
https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
https://www.atlassian.com/git/tutorials/merging-vs-rebasing
多分支操作合并到master
// 自己的工作分支
git checkout xxx // 提交工作分支修改
git commit -a // 回到主分支
git checkout master // 获取远程最新的修改,不会产生冲突
git pull // 回到工作分支
git checkout xxx // 合并主干修改,如果有冲突在此时解决
git rebase master // 回到主分支
git checkout master // 合并工作分支的修改,此时不会产生冲突
git merge xxx // 提交到远程主干
git push
删除远程分支
git push --delete origin xxx //删除远程上xxx的分支
清空缓存栈
git stash clear
node_modules过长无法删除
rm -rf node_modules/
push tag发布
git tag publish/版本号
git push origin publish/版本号
切换分支
$ ~/ccbin/mkview.sh 切换分支
项目相关命令
##ssh三方访问工具SecureCRT 一般口令
ssh admin@服务器地址
* 服务器名称:admin
* 密码:
* cd ccbin 切换到ccbin文件
* ./ccupdate.sh 更新服务器
* ./ccupdate.sh && ./build.sh && ./deploy.sh
* 错误日志
* cd logs/appstore 切换到对应项目日志
* ls 查看日志列表
* tail -f common-error.log
* 修改antx
* vim antx.properties
* i修改 :w 保持 :q 退出
* ls 查看目录下的内容
* tail -200f common-error.log 查看错误日志
删除文件夹
* cd /usr/local/bin 切换路径
* sudo rm -rf /usr/local/bin/tnpm 删除tnpm文件夹
创建并切换到本地分支
* git checkout -b 【本地分支名】 origin/【远程分支名】
删除.git 重新初始化git(delete the old .git
history and initialize new history)
$ rm -rf .git
$ git init
检出命令
* git clone -b 【本地分支名】【远程分支名】
合并分支:
* git branch 查看本地分支
* git branch -a 查看分支详情(本地分支及远程分支)
* git checkout 目的分支(如master)
* git merge 待合并分支(如branch1)【即将branch1分支合并到master】
* git push origin master 将合并后的代码推送到远程分支
回滚版本
* git log 查看提交版本
* git revert 版本号 将本地库回滚到该版本号之前的版本(即取消该版本及之后的提交)
* 解决冲突
* git add . && git commit -m “” && git push 重新提交版本之前的代码
删除分支
* git branch -D br 删除本地分支
* git push origin :br (origin 后面有空格) 删除远程分支
【远程代码库回滚】:
这个是重点要说的内容,过程比本地回滚要复杂
应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //备份一下这个分支当前的情况
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程 the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
http://www.jianshu.com/p/8f0433090e2b?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io Git详解以及使用遇到问题解决
Git stash 命令
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
一、For Windows
- 下载地址:http://msysgit.github.io/
- 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
- git 配置(其实是为常用命令创造别名)
$ git config --global user.name "Your Name" - $ git config --global user.email "email@example.com"
—global 这个参数是说明,当前设备上的所有Git都会使用这个配置。
- 创建版本库
$ mkdir abc //创建目录 abc - $ cd abc //进入 abc 目录
- $ pwd //显示当前目录
- 执行结果:/Users/userName/abc
- 将abc目录变为某项目的版本库目录
$ git init //初始化,会生成一个 git文件夹,注意别动改文件夹下内容。用于跟踪管理版本 - 执行结果:Initialized empty Git repository in /Users/userName/abc .git/
- 新增文件
$ git add README.MD //当前目录下,创建README.MD - $ git commit -m "123123" //添加备注,并添提交至git仓库
- 对于 git config -m "" 的省略,可以为 git c
commit是批量型提交,但add确是需要多次添加一个文件
- 查看状态
$ git status
- 关联远程库
$ git remote add origin 远程库地址 //远程库地址是托管平台创建代码库时所生成的xxxx.git
主要用于对代码托管平台进行维护,github、coding
- 更新远程代码到本地
- git clone xxx.git库地址
- git pull origin master
- 将git仓库的项目文件,提交至远程库
git push -u origin master //将该目录下的文件推送到远端(origin)上的 "master" 分支,第一次提交必须这么写 - git push origin master //推送最新修改,第一次之后每次更新可以使用该命令
- 版本回滚
git log //输出提交的历史记录 - git checkout 9位字符编码
- 或者
- git checkout -b my_previous_version 9位字符编码
- 删除分支
git branch -d new_feature//把分支合并到主干分支,从主干(master)分支上发送 - 假如修已经合并了,那么只会删除分支。假如分支未合并,会得到错误信息。所以需要强制删除
git branch -D new_feature
- 总的来说
$ git init - $ git remote add origin xxxx.git
- $ git pull
- $ git add .
- $ git commit -m "123123"
- $ git push
在 git 中忽略文件 gitignore 与 exclude
常见问题
- error: failed to push some refs to …
- 这是由于远程仓库中代码版本与本地不一致冲突导致的,需要先git pull更新
- 如果出现报错 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
- 则需要重新输入$ git remote add xxxx.git
- fatal: remote origin already exists.
- $ git remote rm origin
- $ git remote add origin xxxx.git
- 如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
- 找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc.找到一个名为gitconfig的文件,打开它把里面的[remote “origin”]那一行删掉就好了!
- there is no tracking information
- 该问题发生在新创建远程库,进行git pull更新时
- git branch —set-upstream master origin/master //这样才可以直接输入git pull 、git push
- 否则每次输入 git push origin master || git pull origin master
- 最后按以下方式提交
git add . - git commit -m "first time add project"
- git push
命令一览表
git命令大集合的更多相关文章
- Windows+linux命令大集合
net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...
- Git命令大总结(纯手办)
Git完整命令手册地址:http://git-scm.com/docs PDF版命令手册地址:github-git-cheat-sheet.pdf 1.git config -l查看全局用户信息配置 ...
- nmcli命令大集合
nmcli命令 地址配置工具:nmcli nmcli device 查看所有网卡的信息 nmcli device status 和numcli device 相同 nmcli device ...
- 【】(Git)用动图展示10大Git命令
1.说明 git merge.git rebase.git reset.git revert.git fetch.git pull.git reflog-- 你知道这些 git 命令执行的究竟是什么任 ...
- 干货100+ 最超全的web开发工具和资源大集合
干货100+ 最超全的web开发工具和资源大集合 作为Web开发者,这是好的时代,也是坏的时代.Web开发技术也在不断变化.虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和 ...
- 干货!IT小伙伴们实用的网站及工具大集合!持续更新!
1.Git 还在担心自己辛辛苦苦写的代码被误删了吗?还在担心自己改错了代码不能挽回吗?还在苦恼于多人开发合作找不到一个好的工具吗?那么用Git就对 了,Git是一个开源的分布式版本控制系统,用以有效. ...
- 我所记录的git命令(非常实用)
一.前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流... [ 顺便问下园友们,怎么感觉博客园发布的博客搜索有时都搜不到,后台编辑能填的都填写了,还是觉得搜索排名不高? 相同的标题 ...
- GIT命令行的使用
新手了解 有不对的地方指点下 首先, 了解下什么是GIT,GIT是一款开元的分布式版本控制工具, 在世界上的所有分布式版本控制工具中,GIT是最简单,最流行,同时也是最常用的 相比于其他版本的控制工具 ...
- Git命令行(转用于学习和记录)
Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...
随机推荐
- mybatis里的foreach语句
相信用了Mybatis的朋友们,都曾有一个疑惑,就是foreach是怎么用的,下面我就简单讲讲我的理解: foreach主要用在SQL语句中迭代一个集合.foreach元素的属性主要由item,ind ...
- memcache的最佳实践方案
1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 1 ...
- NDK开发-Android Studio+gradle-experimental开发ndk
在最新的Android Studio2.2的preview版中,增加全新的ndk支持,使用了新的gradle,以及DSL语言. 新的NDK需要使用新的Gradle插件和新的Android插件来支持! ...
- UEditor上传图片等附件都出现红叉,该怎么解决
------解决方案-------------------------------------------------------- 引用: 在本地这样配置就没问题:var URL = window. ...
- jexus部署ASP.NET MVC网站
1.新建项目,我这里新建的空项目中的MCV 2.用nuget删除这两个类库 Microsoft.CodeDom.Providers.DotNetCompilerPlatform Microsoft.N ...
- iOS socket 笔记
ios 客服端: 下载 AsyncSocket 开发框架,拖到项目中 //建立 #import "ViewController.h" #import <sys/socket. ...
- C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
验证电话号码的主要代码如下: public bool IsTelephone(string str_telephone) { return System.Text.RegularExpressio ...
- 运行第一个abp项目VS2015+localDB
ASP.NET Boilerplate,简称ABP 详细深入:可以参考如下文章 http://www.cnblogs.com/mienreal/p/4528470.html http://www.cn ...
- wex5 实战 登陆帐号更换与用户id一致性
一 前言 关于用户登陆,注册,页面跳转,我讲了很多,都是页面框架级别的.有人问到这个问题,索性总结一下,今天是收尾最后一篇. 以往初学时的设计是: 1 注册 2 登陆 3 进入页面. 这种很简单,没有 ...
- wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
初学wex5,先理理让人容易混淆的三个概念: 一 基本概念: 1 wex5组件,顾名思义,在编辑窗口右侧的组件集合里的,都是wex5基于开源自创的组件,并封装了一套自已的方法.目的是为了方便.相关方法 ...