git使用散记
1、从远程clone一个项目
git clone ‘项目地址’ //clone项目地
git checkout -b dev origin/dev //远程已有dev分支,新建本地dev分支与远程相对应
git add . //加到暂存区
git commit -m '解释' //提交到分支上
git pull //拉取远程的内容
git push origin dev //远程没有dev分支,直接推送并在远程建立了dev分支 (前提是本地必须有dev分支,可以在本地的其他分支上push到远程的dev分支)
2、把本地项目和远程的项目相关联
git init //本地初始化一个 ---别忘了把ssh的公钥 加到远程的setting里
git remote add origin '远程地址' //把本地仓库和远程仓库相关联
git push -u origin master //把本地所有的都推送到远程上,顺便本地master分支和远程master分支相关联
//readme通常会冲突 fatal: refusing to merge unrelated histories
git pull --allow-unrelated-histories //解决
3、一般本地push不上去,冲突了 ,解决办法
git push --set-upstream origin dev //给dev设置上游分支dev,一般本地的dev分支超前 ***这个有点迷糊
git branch --set-upstream dev origin/dev //建立本地dev分支和远程分支相关联:一般多人提交产生冲突的时候用
git branch --set-upstream-to=origin/dev dev //让本地dev分支与远程的dev相对应
4、建分支和切换分支
git branch a //创建a分支
git checkout a //切换到a分支
git checkout -b dev //创建并且换到b分支
git branch //查看本地分支
git branch -a //查看本地+远程的分支
git branch -r //查看远程所有分支 git branch -b dev //删除本地dev分支
git push origin :dev //删除远程dev分 5、查看远程
git remote -v //查看远程库的信息
git remote rm origin //删除已有的远程库
6、查看状态或日志
git status //查看状态
git log //查看由近到远的日志
git log --pretty=oneline //把日志按照一行排版
git log --graph //查看合并分支图
git log --graph --pretty=oneline --abbrev-commit //更合理的看分支 7、合并分支,终止分支合并
git merge dev //合并dev分支到当前分支
git merge --abort //终止合并 //分支管理策略:Fast forward(删除分支,会丢掉分支信息),禁用Fast forward模式,git会在merge的时候生成一个新的commit,从历史可以看出分支信息
git merge --no-ff -m '解释'
git log --graph --pretty=oneline --abbrev-commit //no-ff:是no-fast forward的缩写 git reset --hard HEAD^ //回退到上 git reset --hard 'com_id' //根据com_id版本号回退到未来的某一版本 git reflog //用来记录每一步操8、撤销和回滚 ,还原到原来的历史版本
git checkout -- test.txt //把test.txt文件在工作区的修改全部撤销,就是让这个文件回到最近一次git commit 或git add的状态
git reset HEAD test.txt //把add过的代码回退到最初状态,也可以把暂存区的修改回退到工作区 rm test.txt //删除文件
git rm test.txt //git删除本地的test.txt 后面接着git commit 则直接删除远程的 9、生成密钥
git ssh-keygen -t rsa -C '909340112@qq.com' //生成密钥 10、保存当前代码状态
git stash //进行缓存一下
git stash pop //进行回溯+删除stash 11、创建过滤文件
touch .gitignore //创建过滤文件 在根目录创建此文件,里面写一些正则,过滤掉你已经修改并不想提交的文件
git add -f test.txt //强行提交被过滤的文件
git check-ignone -v app.class //查看
12、解决.gitignore过滤文件不生效
git rm -r --cached .
git add .
git commit -m 'commit log info
13、标签管理:先切到自己想要的分支==》然后打标签
git checkout dev //切换到dev分支
git tag v1.0 //给dev分支打上v1.0标签
git tag //查看tag标签
git show v1.0 //显示标签的v1.0的信息 14、配置别名:
git config --global alias.st status //给status别名st
git st //相当于git status git config --global alias.co checkout //checkout -->co
git co //相当于git checkout git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log-1'cat .git/config //在这个文件里进行配置
15、对文件的一些命令操作
pwd:查看文件目录
vi test.txt //进入到test.txt,点insert进入编辑==》点Esc退出编辑==》:wq+回车 强行退出
:wq 保存并退出
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
*****:表示比较常用的
git使用散记的更多相关文章
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 史上最详细git教程
题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
随机推荐
- MQTT 协议学习:002- 通信报文的构成
背景 之前工作中参与有关协议调试的时候,发现对于协议帧的解析是比较重要的. 参考:<MQTT协议 -- 消息报文格式>.<基于STM32实现MQTT>.<MQTT协议从服 ...
- Codeforces Round #624 (Div. 3)(题解)
Codeforces Round #624 (Div.3) 题目地址:https://codeforces.ml/contest/1311 B题:WeirdSort 题意:给出含有n个元素的数组a,和 ...
- 冰蝎动态二进制加密WebShell特征分析
概述 冰蝎一款新型加密网站管理客户端,在实际的渗透测试过程中有非常不错的效果,能绕过目前市场上的大部分WAF.探针设备.本文将通过在虚拟环境中使用冰蝎,通过wireshark抓取冰蝎通信流量,结合平时 ...
- ubuntu 新建用户后 不能使用TAB键、上下键,命令行不显示当前路径的解决
因默认ubuntu创建的普通帐号,默认shell为/bin/sh,而这不支持tab等键的,所以将「指定用户」帐号的shell改为/bin/bash就可以了. 1.查看当前的shell:# echo $ ...
- Day6 - K - 陌上花开 HYSBZ - 3262
有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),用三个整数表示. 现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量. 定义一朵花A比另一朵花B要美丽,当且仅Sa>= ...
- 从零开始学C++(1 变量和基本类型)
接下来的几篇文章介绍C++的基础知识点. C++是一种静态数据类型语言,它的类型检查发生在编译时.因此,编译器必须知道程序中每一个变量对应的数据类型. 数据类型是程序的基础:它告诉我们数据的意义以及我 ...
- 004.Oracle数据库 , 查询多字段连接合并
/*Oracle数据库查询日期在两者之间*/ SELECT PKID , OCCUR_DATE, PKID || TO_CHAR( OCCUR_DATE, ' yyyy/mm/dd hh24:mi:s ...
- 002.Delphi插件之QPlugins,菜单插件
运行之后的效果如下, 图一 图二 主界面代码如下 unit Frm_Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUt ...
- 嵊州普及Day2T1
题意:对于给出的数列,有多少数可表示为另两数的和. 思路:先排个序,桶排思路.以一个数组储蓄所有出现的和.最后循环判断是否b[i]>0. 见代码: #include<iostream> ...
- leeetcode1171 Remove Zero Sum Consecutive Nodes from Linked List
""" Given the head of a linked list, we repeatedly delete consecutive sequences of no ...