[Git] Git 使用记录
1. 配置git客户端
1.1 安装git bash
1.2 设置ssh Key
查看是否有ssh key
ls -al ~/.ssh
没有则生成ssh key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将生成的公钥 (.pub为后缀) 上传到git网站上
eval $(ssh-agent -s) //确定ssh-agent正在运行
ssh-add ~/.ssh/id_rsa //添加ssh私钥到客户端
ssh git@github.com //测试
1.3 设置用户名和邮箱
git config --global user.name "NAME HERE"
git config --global user.email "aaa@qq.com"
2. 管理项目
2.1 本地已有项目
在项目的目录下执行以下命令(git bash)初始化仓库
git init
项目下会多出.git文件夹(默认隐藏)
将项目与远程仓库关联
git remote add origin git@github.com:arcsinW/OpenHelloCDUTUWP.git
git remote -v # 查看远程仓库
提交更改
git add .
git commit -a -m "Initial commit"
git push origin master
或者
git add .
git commit -a # 接着在git bash 里的文本编辑器里写Commit message
git push origin master
2.2 从远程仓库获取项目
git clone https://github.com/libgit2/libgit2 //获取master分支
git clone -b dev https://github.com/libgit2/libgit2 // 获取dev分支
2.3 分支
git checkout -b dev # 新建并切换到dev分支
git branch # 查看本地分支
git branch -a # 查看远程分支
git checkout master # 切换到master分支
git merge dev # 合并dev分支到当前分支
git branch -d dev # 删除dev分支
git push origin --delete dev # 删除远程dev分支
git checkout -b dev origin/dev # 从远程仓库拉取本地不存在的dev分支
下图是在当前分支为signle_edition时执行git merge master
时出现冲突的情况,IDE是VS Code
<<<<<<< HEAD 到 =======的部分是当前分支single_edition的版本
======= 到 >>>>>>> master是master中的版本
处理冲突就是手动选择保存哪个版本的代码
处理好冲突后,使用add
将该文件标记为已解决状态
git add filename
2.4 版本控制
git rm --cached readme.txt # 将文件untrack,不删除文件
git rm readme.txt # 将文件untrack并删除
git log --pretty=oneline # 查看提交日志
git --no-pager log # log不分页
git reset --hard HEAD^ # 回退到上一commit
git reset --hard [commit_id] # 回退到指定commit,commit_id只需写前几位,能唯一确定这个commit即可
3. some solutions
- refusing to merge unrelated histories
加上--allow-unrelated-histories
git pull origin master --allow-unrelated-histories
- 修改提交到远程仓库的commit信息
查看本地仓库的log信息,找到要修改的commit之前一个commit的id
git log --pretty=oneline
git rebase -i [commit_id]
将要修改的commit信息前的pick改成edit
git commit --amend #修改commit信息
git rebase --continue
git push -f origin master #覆盖远程仓库commit信息(也会覆盖其他人的提交)
- 重新添加 .gitignore
git rm -r --cached .
git add .
git commit -m "add .gitignore file"
- 查看版本控制下的文件
git ls-files
- git stash
当你想切换分支,但工作区还有未提交的代码,而这个代码还没写完不想提交,这时候可以把当前的工作状态暂时存储起来
git stash // 存储当前的变更
git status // 工作区此时clean了
git stash list // 查看所有的stash
git stash apply stash@{0} // 恢复stash@{0}这个stash(由上一步获得)
git stash show -p stash@{0} | git apply -R // 取消一个stash
git stash branch testchanges // 在新分支中查看stash
Reference
[Git] Git 使用记录的更多相关文章
- Git 仓库和记录操作到仓库
Git 配置好了,来 clone 个或者新建个仓库来试试, $ git clone git@github.com:git/git.git 把 Git 的源码克隆下来,克隆会自动创建本地仓库,并创建本地 ...
- 『GitHub』Git常用命令记录
Commands: git init 把当前目录变成Git可以管理的仓库 随后出现.git目录,这个目录是Git来跟踪管理版本库的git commit -m "change message& ...
- GIT初始学习记录
目录 GIT学习记录 配置github与gitlib两个账号 基本操作 git init:初始化仓库 git status:查看仓库状态 git add :向缓存区中添加文件 git commit 保 ...
- git 跟踪提交记录
一.克隆git仓库 git clone ssh://hwl@xxx/home/data/repositories/git.git 二.申明使用人信息,以便跟踪提交记录 $ git config --g ...
- 【Git】学习记录
配置git git config --global user.name "用户名或者用户ID" git config --global user.email "邮箱&qu ...
- git使用方法记录
git是一个分布式的代码版本管理系统,使用起来的确很方便,已签只会star别人的项目,今天刚好有空抽点时间学了一下,简单的几个命令的用法. 首先在giuhub上可以托管代码,然后可以将远程仓库拖到本地 ...
- 规范git commit提交记录和版本发布记录
在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来 ...
- Git原理学习记录
Git原理学习记录 1.git init git-test git init 实际上就是在特定的目录下创建对应的目录和文件 2.object $ echo "V1" > ...
- [skill][git] git 常用操作记录
傻瓜入门: step by step : https://try.github.io/levels/1/challenges/1 一本书: https://git-scm.com/book/en/v2 ...
- 【转帖】Git学习笔记 记录一下
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...
随机推荐
- hdu 1269 迷宫城堡(trajan判环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:略 题解:trajan模版直接求强连通分量. #include <iostream& ...
- CF940A Points on the line 思维
A. Points on the line time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Disruptor中shutdown方法失效,及产生的不确定性源码分析
版权声明:原创作品,谢绝转载!否则将追究法律责任. Disruptor框架是一个优秀的并发框架,利用RingBuffer中的预分配内存实现内存的可重复利用,降低了GC的频率. 具体关于Disrupto ...
- springboot中动态修改logback日志级别
springboot中动态修改logback日志级别 在spring boot中使用logback日志时,项目运行中,想要修改日志级别. 代码如下: import org.slf4j.Logger; ...
- [大数据学习研究] 3. hadoop分布式环境搭建
1. Java安装与环境配置 Hadoop是基于Java的,所以首先需要安装配置好java环境.从官网下载JDK,我用的是1.8版本. 在Mac下可以在终端下使用scp命令远程拷贝到虚拟机linux中 ...
- 基于DevExpress的SpreadsheetControl实现对Excel的打开、预览、保存、另存为、打印(附源码下载)
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- 浮动后的 <li> 如何在 <ul> 中居中显示?
百度了许久都没有满意的解决方案,现在终于搞定了. 其实,只要 ul 的父元素 css 样式设了 text-align: center; 然后 ul 设了 display: inline-block; ...
- Mysql优化总结(一)
一,前言 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库. MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司.My ...
- Metasploit工具----漏洞利用模块
漏洞利用是指由渗透测试者利用一个系统.应用或者服务中的安全漏洞进行的攻击行为.流行的渗透攻击技术包括缓冲区溢出.Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的 ...
- 松软科技课堂:sqlserver--数据类型
SQL Server 数据类型(文章来源:松软科技www.sysoft.net.cn) Character 字符串: 数据类型 描述 存储 char(n) 固定长度的字符串.最多 8,000 个字符. ...