本内容参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

初学,有什么不对的地方 ,欢迎指出

一、工作区(本地仓库)

1、创建仓库(repository):git init

用法:在文件夹(变成仓库的文件夹)目录下执行 git init

2、添加文件:git add [文件路径]

如:

提交文件:git add test.txt
提交文件夹:git add test
提交任意文件: git add *
提交当前目录所有文件: git add .
添加所有文件,同时将已删除文件从仓库中删除:git add -u
 
3、删除文件:
1)rm [文件路径] 或直接在文件管理器把文件删除
如:rm text.txt
注:恢复文件 git checkout rext.txt
 
2)删除并删除仓库中的版本
git rm [文件路径]
注:
1))恢复文件:git rest HEAD [文件路径]
2))git checkout [文件路径]
 
4、回退版本:git rest hard commit_id
如:git rest --hard 12345
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
 
5、获取最的提交信息:git log
注:可根据返回的日志的id回退版本
如:git rest --hard 12345
 
6、查看命令历史:git reflog
 
7、获取仓库状态信息(增、删、改文件相关信息):git status
 
8、撤销修改(丢弃工作区的修改)git checkout -- [文件]
注:git checkout -- file命令中的--很重要,没有--,就变成了“创建一个新分支”的命令
 
二、远程仓库
1、创建SSH Key
1)在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key,密码是可选项,输入如下命令:
ssh-keygen -t rsa -C "youremail@example.com"
最后将你的公钥交给git管理人
 
2、关联远程版本库
仓库下运行命令:git remote add origin [git地址]
如:git remote add origin git@github.com:michaelliao/learngit.git
 
3、本地库的内容推送到远程:git push -u origin [文件]
如:
git push -u origin master
-u:由于远程库是空的,第一次推送master分支时,会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,
关联后,推送到远程可以把加-u参数
 
4、克隆远程库到本地:git clone [git地址]
如:git clone git@github.com:michaelliao/gitskills.git
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
 
5、分支(branch)
1)创建分支:git branch [分支名]
如:git branch dev
 
2)切换分支:git checkout [分支名]
如:git checkout dev
 
3)创建并切换分支 : git checkout -b [分支名]
如:git check -b dev 
实际上是执行了1) 和2)两条命令
 
4)查看分支:git branch
注:git branch命令会列出所有分支,当前分支前面会标一个*号
 
5) 合并分支到当前分支:git merge [分支名] 
如:git merge dev 
 
6)删除分支:git branch -d [分支名]
如:git branch -d dev
 
7)删除远程分支:
git branch -d [分支名]  //先删除本地分支
git push origin :[分支名]  //再推上服务器
 
 
6、解决冲突
<<<<<<< HEAD(HEAD指向当前分支末梢的提交。)
Creating a new branch is quick & simple.(当前分支中的内容。)
=======
Creating a new branch is quick AND simple.(merge过来的另一条分支上的代码。)
>>>>>>> feature1(分支的名字)
 
7、分支管理策略
1)Fast forward模式(默认):这种模式下,删除分支后,会丢掉分支信息,合并就看不出来曾经做过合并。
2)普通模式(--no-ff参数):普通模式合并,合并后的历史有分支,能看出来曾经做过合并。
如:git merge --no-ff dev (使用普通模式)
 
8、储存/恢复工作区 
1)储存:git stash
2)恢复:
2-1)查看储存信息:git stash list
2-2)恢复:
2-2-1)git stash apply:恢复后,stash内容并不删除,需要用git stash drop来删除;
2-2-2)git stash pop:恢复的同时把stash内容也删了:
用法:git stash apply [stash_id]/git stash pop [stash_id]
如:git stash apply stash@{0}
 
9、丢弃一个没有被合并过的分支(强行删除):git branch -D [分支名]
如:git branch -D dev
注:没有合并过的分支,需求强行删除才可以删除
 
10、查看远程库信息: git remote
-v:查看详情信息
注:没有推送权限,就看不到push的地址 
 
11、推送分支:git push origin [分支名]
 
12、拉取分支:git pull origin [分支名]
 
13、建立本地分支和远程分支的关联:git branch --set-upstream [工作区分支名] origin/[服务器分支名]
如:git branch --set-upstream dev origin/dev
 
14、忽略文件
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
将忽略文件添加版本控制也可以使用命令:git add [文件] -f
 
15、忽略已跟踪的文件 

git update-index --assume-unchange [文件名]

 
 
 
 
 
 
 
 

git基础入门之常用命令操作的更多相关文章

  1. git 快速入门及常用命令

    身为技术人员,都知道Git是干嘛的.从服务端角度它是代码仓库,可以多人协作.版本控制.高效处理大型或小型项目所有内容:从客户端讲,它能够方便管理本地分支.且与服务端代码的同步,从拉取.合并.提交等等管 ...

  2. Git 工作原理以及常用命令操作

    GIT工作原理 要了解GIT工作原理,先了解GIT的这几块区域: 工作区域划分 工作区:指的是本地工作空间,如果刚拉取下来的代码,没有修改的内容,这块区域是空白的 (modified-已修改状态) 暂 ...

  3. Git基础知识与常用命令

    一:相关概念: 1:工作区(Working Directory): 就是你在电脑里能看到的目录 2:版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. ...

  4. Git快速入门和常用命令

    一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global us ...

  5. MySQL基础入门之常用命令介绍

    mysql命令介绍 mysql 是数据库管理命令 通过mysql --help来查看相关参数及使用说明 mysql --help                #mysql数据库管理命令 Usage: ...

  6. Linux基础入门 vim常用命令详解

    介绍 vim是一个文本编辑程序 没有菜单,只有命令,且命令繁多 命令行模式下相关命令 移动光标 ​ h: ← 左移 ​ l: → 右移 ​ j: ↓ 下移 ​ k: ↑ 上移 ​ gg: 光标移动文件 ...

  7. CloudEngine 6800基础配置-02_常用命令操作

    查看未提交配置   system-view ftp server enable display configuration candidate   删除未提交的配置 clear configurati ...

  8. MySQL基础入门之常用命令使用

    如何启动MySql服务 /etc/init.d/mysqld start service mysqld start Centos .x 系统 sysctl start mysqld 检测端口是否运行 ...

  9. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

随机推荐

  1. javascrpt随笔

    function member(name, gender) { this.name = name; this.gender = gender; this.display = display; //指定 ...

  2. Why isn't there a SendThreadMessage function?

    Here's an interesting customer question: Windows has PostMessage and SendMessage. It also has PostTh ...

  3. WEB前端性能优化小结

    转:http://www.gafish.net/archives/1514 对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不 ...

  4. RDD的依赖关系

    RDD的依赖关系 Rdd之间的依赖关系通过rdd中的getDependencies来进行表示, 在提交job后,会通过在DAGShuduler.submitStage-->getMissingP ...

  5. web自己主动保存表单

    note:当中部分源代码来源网络 所用的框架:jquery 实现的功能: 1.自己主动保存表单 2.页面刷新的时候把自己主动保存的值赋值给表单元素 思路: 1.表单值改变的时候自己主动触发函数.保存表 ...

  6. ThreadLocal小记

    API: public class ThreadLocal<T> extends Object 该类提供了线程局部 (thread-local) 变量. 这些变量不同于它们的普通相应物.由 ...

  7. 0c-36-自动释放池应用场景

    .autorelease的应用场景 经常用来在类方法中快速创建1个对象. // 声明实现一个类方法 + (Student *)student { // 在里面直接进行autorelease retur ...

  8. navigationController pushViewController 多次跳转后怎么返回

    使用NavigationViewController进行页面跳转时,应该使用pushViewController方法来跳转至下一页面,这样的话,下一页面同样在NavigationViewControl ...

  9. Golang学习 - unsafe 包

    ------------------------------------------------------------ 指针类型: *类型:普通指针,用于传递对象地址,不能进行指针运算. unsaf ...

  10. mysql中如何嵌套使用insert和select

    如何在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现.具体情形是:有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,我们可以使 ...