Git常见使用方法

图参考:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
1、GitLab配置
git config --global user.name "xxx" -- 配置用户名,上传本地 repository 到服务器上的时候,在 Github 上会显示这里配置的上传者信息
git config --global user.email "xxx" -- 配置邮箱
git config --list -- 查看配置列表
配置 sshkey : 上传代码时使用这个 sshkey 来确认是否有上传权限
1. 创建本地 ssh : ssh-keygen -t rsa -C "注册邮箱"
2. 在 Github 中添加这个 sshkey :
复制 ~\.ssh\id_rsa.pub 文件中的内容;
登录 Github --> Account Setting --> SSH-KEY --> Add SSH-KEY --> 粘贴id_rsa.pub中的内容(GitLab上类似);
3. 验证: ssh -T git@github.com
出现 Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. 说明配置成功,可以连接上 Github
2、建立仓库
git init -- 创建本地仓库
git remote add origin git@github.com:用户名/仓库名.git
-- 把本地仓库和远程仓库关联起来, 如果不执行这个命令的话,每次 push 的时候都需要指定远程服务器的地址
3、下载/更新
git pull origin master
4、修改、提交、推送
git add
git add -A -- 将改动添加到本地仓库中
git rm xxx -- 从本地仓库中删除指定文件
git rm -r xxx -- 从本地仓库中删除指定文件夹
git rm --cached xxx --从本地仓库中删除指定文件,但是保留该文件。含义是“取消追踪该文件”。 git commit -m "注释" -- 把本机缓存中的内容提交到本机的 HEAD 里面 git push origin master -- 把本地的 commit push 到远程仓库中
5、使用 .gitignore 文件忽略指定的内容
1. 在本地仓库根目录创建 .gitignore 文件。Win7 下不能直接创建,可以创建 ".gitignore." 文件,后面的标点自动被忽略;
2. 过滤文件和文件夹: [Tt]emp/ 过滤 Temp\temp 文件夹; *.suo 过滤 .suo 文件;
3. 不过滤文件和文件夹: !*.c
6、解决冲突
有的时候执行git pull的时候会提示冲突,又不好解决,怎么办呢:
1. 如果希望暂时保留改动,仅仅并入新配置项,那么就执行下面的命令。然后可以使用 “Git diff -w +文件名” 来确认代码自动合并的情况:
git stash
git pull
git stash pop
2. 如果希望用代码库中的文件完全覆盖本地工作版本:
git reset --hard
git pull
3. 编辑冲突
git mergetool
7、分支操作
在多人协作时,如果还要切换电脑,那么切换到自己的分支比较妥当,防止干扰别人提交:
git checkout Branch_KuLiuheng // 切换到指定分支 git checkout . // 丢弃本地所做的所有修改 git merge --no-ff master // 将master 主干的内容合并到当前分支 git branch // 查看本地分支情况
git branch -a // 查看远端分支情况 git branch -D Branch_KuLiuheng // 强制删除本地分支
8、撤销
如果不小心提交了内容希望撤销回去,那么需要输入这些命令:
git revert ***(commit号) git push
执行了这个操作后,会产生一个普通的修改,可以直接push发布出去。
如果想撤销一个“Merge”操作呢,相对要麻烦一点点,如果用上面的命令将会出现一个错误“error: Commit g is a merge but no -m option was given.”,
这是什么意思呢?原因是git认为合并的两个分支地位是等同的,git并不知道应该撤掉哪一个,所以需要我们来指定一下。操作步骤如下:
#git show 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548 // 先看下合并信息,这个提交号是我想撤销的合并操作 commit 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548
Merge: 312a518 fa87415
... ... #git show 312a518 // 分别看下这两个分支的提交信息,来决定撤销哪个
#git show fa87415 #git revert -m 83281a8e9aa1ede58d51a6dd78d5414dd9bc8548 // 这里的"-m 2"就是指定fa87415为master主干,如果是312a518为主干就指定"-m 1"
9、设置Git提交模板
在用户目录下会有一个 .gitconfig,一般可以通过 git config 命令来设置内容,也可以手动修改。这个文件里面可以指定git提交的默认模板,比如这么写:
[user]
name = 库流亨
email = liuheng.klh@autonavi.com [commit]
template = E:\\personalWorkspace\\gitt\\config\\commit_template.txt
模板是个文本文件,里面可以随意写下默认希望git填充的内容:
fix #
【问题原因】
【解决方案】
【影响范围】
10、解决多平台git提交时换行符引起的空白提交问题
默认状态下,git在跨平台提交时,总会因为换行符的不同而导致空白提交,用git diff看不出任何差别,非常烦人。
我通过 git config去设置 core.safecrlf = true 来自动转换换行符其实挺麻烦的,还不如在工程根目录创建一个 .gitattributes 文件,填写如下内容:
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto # Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.cpp text
*.h text
*.java text # Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
*.css text eol=crlf
*.js text eol=crlf
*.md text eol=crlf
*.txt text eol=crlf
*.sql text eol=crlf
*.php text eol=crlf
*.c text eol=crlf
*.cpp text eol=crlf
*.h text eol=crlf
*.java text eol=crlf # Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
11、日志操作
Git常见使用方法的更多相关文章
- git常见错误及解决方案总结
git常见错误及解决方案总结 使用git在本地创建一个项目的过程 $ makdir ~/hello-world //创建一个项目hello- ...
- Git 常见的一些小命令
Git 常见的一些命令 关于一些参数比较多,比较复杂的都有单独进行介绍 1. git cherry-pick 挑拣命令,当我们不想合并分支,或者git pull 更新仓库,而是 ...
- Oracle之常见问题诊断方法
Oracle认证:常见问题诊断方法如下: 1.TNS-12154 Error 或ORA-12154 特征:SQL*NET没有找到连接串或别名 原因1:(1)没有找到TNSNAMES.ORA文件,该文件 ...
- 100m和1000m网线的常见制作方法
100m和1000m网线的常见制作方法 100m和1000m网线的常见制作方法: 5类线(100m)的制作: a: 绿白(3).绿(6).橙白(1).蓝(4).蓝白(5).橙(2).棕白(7).棕(8 ...
- 在Linux下搭建Git服务器的方法是什么样?
第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法.ubuntu可以用apt-get命令.sudo yum install git 第二步 添 ...
- OpenStack安装部署管理中常见问题解决方法
一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...
- android studio下gradle与Git错误解决方法
Error: Gradle: Execution failed for task ':mytask' > A problem occurred starting process 'command ...
- Web Deploy发布网站及常见问题解决方法(图文)
Web Deploy发布网站及常见问题解决方法(图文) Windows2008R2+IIs7.5 +Web Deploy 3.5 Web Deploy 3.5下载安装 http://www.iis.n ...
- GIT工程迁移方法总结
Git工程迁移方法总结 Git最近准备迁移一下位置,这里采用命令行的方式,做如下操作. 1.git init 初始化git仓库,这个时候发现本地文件夹多了个.git的文件夹. 2.git remot ...
随机推荐
- Xposed MultiDex Hook
使用Xposed Hook多DEX的应用时,Xposed会抛ClassNotFound的异常,原因是它只会在classes.dex查找类.以下官方不完美解决办法,参考 Github上的 #30 iss ...
- systemd设置静态IP
/********************************************************************************* * systemd设置静态IP * ...
- 利用selenium模拟登录webqq
from selenium import webdriver import selenium.webdriver.support.ui as ui import time opt = webdrive ...
- [LeetCode&Python] Problem 771: Jewels and Stones
You're given strings J representing the types of stones that are jewels, and S representing the ston ...
- Unity等待写入数据
EasyTouch中QuickGesture的用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Qu ...
- VS 提升代码辨识度 (工欲善其事必先利其器)新手开发必备!
VS简化编译.提高生产 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...
- HDU - 1174:爆头 (三维平面点到射线的距离)
pro:给定警察的射击位置,设计方向,敌人的位置,敌人的头部半径,问子弹是否可以射到头部. sol:即问头部中点到子弹射线的距离是否小于等于头部半径. 和二维的点到直线一样的操作. det/dot: ...
- python开发day03
一.常见的数据类型 1. int ==> 整数. 主要⽤用来进⾏行行数学运算 \ (常见的操作有+-*%) a.bit_length() a= # 10进制 二进制 100 print(a.b ...
- npm常规命令行集合
最近在摸索vue-cli脚手架的安装,中间用到了一些node的npm命令行,进行了一些整理,并且这个会一直搜集整理更新! 1,常规文件操作命令 cd.. 返回当前文 ...
- 一次scrapy成功停止的信息
2017-11-05 18:52:42 [scrapy.core.engine] INFO: Closing spider (finished)2017-11-05 18:52:42 [scrapy. ...