本篇文章主要介绍自己在平时工作中使用git的一些常用命令,之前都是记录在本子上面,现在把他们记录在博客上,便于保存和回顾。

  1. 1. 建立自己的git仓库

  2. 1.1 在一个新建的repo文件夹里面,执行git init,建立一个本地仓库。

配置自己的信息

git config –-global user.name “hu hao”

git config –-global user.email “huhao@email.com

1.2 添加新加入和已经修改的文件到本地仓库

git status               #查看当前本地git库的修改差异

git add file_name     #将file_name加入到本地暂存区

git add .           #将当前目录下的所有文件全部添加到暂存区

git commit              #将本地暂存区提交到本地库中去

提交日志写法:首行要少于50个字的开发概括信息

第二行为一个空行

第三行为细致描述开发信息

git pull                          #将远程git库中的代码更新到本地来

git push                        #将本地库中的代码提交到远程git仓库中去

git rm                           # 删除一个文件

git rm  --cache filename   #删除已经add的文件

git mv old_filename new_filename    #重新命名一个文件

在已经建立好的repo文件夹下的git库中,将本地的git库升级为远程的git中心仓库。

然后,你就拥有了自己的一个git远程仓库了,此时,可以新建一个自己的文件夹,然后从repo_git这个仓库中提取代码了,从哪里提取的,就向哪里提交。

1.3 使用git clone repo_git的路径就可以拷贝代码了。

1.4 另一种方法创建远程git仓库

在本地的git仓库上面添加一个远程仓库

git remote add origin ssh://用户名@IP地址/本地仓库的地址

git push origin master     #将本地的master(建立git仓库时,会默认建立一个master分支)跟踪到远程origin分支上面去。

查看远程分支情况:git remote show origin

2.git的diff使用

对于已经修改,但是还没有add的文件,可以用git diff a.c来查看a.c文件的前后修改对比,如果对修改的不满意,可以用git checkout a.c 来还原此次的修改。

对于已经修改,并且已经add的文件,可以用git diff –-cached来查看a.c文件的前后修改对比,如果对已经提交的修改不满意,可以先用git reset HEAD a.c来去掉a.c的文件的暂存属性,然后再次修改,add即可

如果你要干干净净的回到之前的某个版本,在此之后的所有提交都不保留,那么 git reset –hard commit号 就可以了。

如果要查看某一个版本之前的分支的某处代码,建议在当前分支上,新建一个分支,在新分支上面,使用git checkout commit号

git branch   #查看当前分支状态

git branch new_branch  #新建一个new_branch分支,新分支包含于原分支完全相同的文件内容

git checkout new_branch   #切换到new_branch分支上面,在新分支上,怎么折腾都行

git branch –d new_branch  #删除new_branch ,不能删除当前正在使用的分支

要合并new_branch的内容到主分支上面去,先切换到主分支上(git checkout master),然后git merge new_branch就可以了。如果在合并代码的时候(分支合并到主线上),有冲突的文件,合并时会有提示,并且在主线冲突文件中有对于的冲突说明。修改完主线上的冲突文件后,需要再次add,并且commit,然后再次git merge

查看远程分支,详见git远程分支相关操作

3. git log查看

git log   直接查看所有提交的信息

git log –p  查看每次修改的详细信息

git log --pretty=format:'%h : %s' –graph 打印出可视化的提交图

4.  .gitingore文件

自己的.gitignore文件,git在提交时,会自动忽略掉.gitignore里面的文件类型,编译过程中一些临时的文件就不需要提交到git库上面去。

*.o
*.a
*.cmd
*.order
*.builtin
*.d
*.symvers
*.lzma
*.ko
*.tmp_*
System.map
vmlinux
root_uImage
kernel-rt*
.verson

以后用到的会及时的补充上来。恩,先就写什么多了。

详细参考见:git中文版手册

git使用小结的更多相关文章

  1. Git学习小结 ~ Lethe's Blog

    学习自https://www.liaoxuefeng.com/wiki/896043488029600 一.创建版本库 (1) git init 初始化一个Git仓库 (2)添加文件到Git仓库,分两 ...

  2. 转 git操作小结

    UNDER MIT LICENSE. 公司几乎所有的项目都是使用 git 仓库来管理代码,以前对 git 只有些肤浅的了解,每次提交代码或者上线的时候总是会提心吊胆,生怕出现一些未知的问题.经过三个月 ...

  3. git参考, 小结

    git官网: https://git-scm.com 菜鸟教程: http://www.runoob.com/git/git-tutorial.html 廖雪峰: https://www.liaoxu ...

  4. git merge 和 git rebase 小结

    Git merge是用来合并两个分支的. git merge b # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 ---------------------- ...

  5. Git学习小结(第三次作业)

    本文主要总结一下在学习和使用git中一些用到的命令. 参考教程:廖雪峰git教程 在windows上安装git 下载使用环境:http://msysgit.github.io/, 安装一路默认即可. ...

  6. Git 技巧小结

    本篇博客内的内容,主要摘抄自 廖雪峰的 Git教程,这篇教程写的通俗易懂,步步深入,是我见过最棒的Git教程了.下面的全部内容,摘抄自此教程,有需要的朋友,请看完整版. Git版本库 git在创建版本 ...

  7. git提交小结

    git有工作区和暂存区的概念,工作区就是可以看到文件目录的地方,暂存区则是提交代码的地方 第一步,进入文件工作目录,终端输入命令 $ dir1/dir2: 第二步,查看哪些文件已经修改,输入命令 $ ...

  8. git 使用小结

    git git是一个分布式版本控制系统,主要用于多人协作.可以将自己的代码托管到github上. 常用的几个命令 git pull 拉取别人的修改到本地,如果拉取内容和本地所作的修改存在冲突,git会 ...

  9. git学习小结 (笔记)

    Modesty helps one to go forward, whereas conceit makes one lag behind. "虚心使人进步,骄傲使人落后" 注:本 ...

随机推荐

  1. mysql 历史记录查询

    SHOW SLAVE STATUS insert into jy510_admin set userid='123123' mysqlbinlog d:xampp\mysql\data\mysql-b ...

  2. git的一些命令

    因为项目的原因,大家把项目托管到git上,然后我不会,队友就传了一个廖雪峰的git教程,讲的很详细,不会用git的同学,可以在http://pan.baidu.com/s/1pKizolP上下载,这是 ...

  3. 使用docker-hub

    使用docker hub 需要其账号 基本操作 查找镜像 sudo docker search centos 每个用户有自己的命名空间,如:centos是存仓库中的镜像文件,admln/centos则 ...

  4. WPF 之 线程使用

    但凡涉及到图形界面,往往的设计都是不支持或者不推荐使用多个线程操作界面内容.而且通常会有一个专门的线程调度器来处理任务线程和界面线程的问题. 下面提供两个方案: 1.使用Dispatcher.Begi ...

  5. Android自定义控件:进度条的四种实现方式(Progress Wheel的解析)

    最近一直在学习自定义控件,搜了许多大牛们Blog里分享的小教程,也上GitHub找了一些类似的控件进行学习.发现读起来都不太好懂,就想写这么一篇东西作为学习笔记吧. 一.控件介绍: 进度条在App中非 ...

  6. UVa OJ 10300

    Problem A Ecological Premium Input: standard input Output: standard output Time Limit: 1 second Memo ...

  7. javass 视频笔记二 (关键字,标示符,常量变量,运算符和if-else)

    1,java的关键字和标识符2,java的基本数据类型3,变量和常量4,java的运算符5,if-else if - else表达式1,java的关键字和标识符      1.1,所有关键字都要小写 ...

  8. 我关于SecureCRT远程连接失败的问题解决办法

    使用VirtualBox搭建一个ubuntu14.04的系统环境,为了省去主机与虚拟机直接互相直接一直切换的频繁操作,所以想到了使用SecureCRT连接,但是出现了连接问题,问题如下图:

  9. 分页控件(PageControl)的相关属性说明

    UIPageControl *pageControl = [[UIPageControl alloc] init]; pageControl.center = CGPointMake(w * ); p ...

  10. Html5新标签及用法

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2  HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务( ...