git命令

简介:

一、git基本命令

1)git init                 #在本地建一个git管理目录

2)git clone git://...git   #将仓库中的全部分支分支克隆到本地当前git管理目录

3)git status               #查看当前目录中,文件的修改状态

4)git add 文件名           #添加到git管理

5)git diff               #查看当前目录所有修改过的文件(修改过还没有使用commit提交的文件)

6)git diff --cached      #可以查看使用add阶段化后的差别

7) git diff branch_name   #比较当前分支与branch_name分支的不同

7)git diff 节点号1   节点号2      #比较2个节点的不同

7)git rm 文件名  & git rm -r 文件夹        #删除文件和文件夹

8)git commit --m "new version"    #提交到本地库

9)git push origin master          #将本地库同步到远程核心库

10) git checkout  branchname   #切换到某个分支或检出一个远程分支

11) git revert HEAD          #还原最近一次提交的修改 (HEAD始终指向当前分支的当前节点)

12) git revert commit-id     #还原到指定节点的修改:

13) git log -p branch_name   #显示当前分支的提交记录,及代码变更。

13)  git log                  #显示当前分支的提交记录

origin的含义:在clone完成之后,Git 会自动为你将此远程仓库命名为origin(origin相当于一个远程仓库的别名,运行git remote –v或者查看.git/config可以看到origin的含义

二、git分支管理(分支管理开发过程:http://blog.jobbole.com/25877/)

1.git branch -a 查看所有分支,包括远程的origin/master和本地的master(origin/master是存储在本地的远程主分支)

2.git fetch 将远程的代码同步到origin/master,但是没有合并到master分支;这一步一般不会有冲突

3.git merge 合并origin/master与master分支,可能产生冲突;也可以用rebase,这样可以减少分支的出现

4.git log --oneline --graph --stat  origin/master -p  查看分支的log,-p显示修改部分

5.git difftool  比较更改

6.git checkout 检出当前分支中的代码到工作目录,覆盖工作目录中的指定文件

(1)git checkout filename  从暂存区(cash)中检出文件,覆盖工作目录中的指定文件

(2)git checkout HEAD filename 从仓库中检出文件,覆盖暂存区和工作目录.

7.reset和checkout的比较:

(1)checkout不能做commithash之间的复位

(2)一次checkout一定会改变工作目录的内容,使得工作目录中的内容与暂存区或与仓库中的俄内容一致.

(3)一次reset一定会试图改变HEAD的位置,reset之后,HEAD都会指向指定节点commithash,如果该commithash不是HEAD,那么该commithash之后的节点将会从仓库中被删除.checkout是不会影响HEAD位置的.

(4)reset可以将仓库中的commithash还原到指定commithash;可以将暂存区还原到仓库中的指定commithash;可以将工作目录还原到仓库中的指定commithash

git reset --hard HEAD = git checkout HEAD     检出到本地工作目录和暂存区

git reset HEAD  检出到暂存区,默认为--soft(如果暂存区有add的提交,将会被回退到unstaged状态,工作目录不变,这种情况任何已有的修改都不会丢失)

git reset --hard HEAD  =  git reset HEAD  +  git checkout


(4)重点:checkout针对于每个文件的还原;reset针对于所有文件(整体状态)的还原

8.git diff

(1)git diff file 比较工作目录与暂存区的不同

(2)git diff --cached file 比较暂存区与仓库的不同

(3)git diff commithash file 比较工作目录与仓库的不同,如果时当前HEAD,那么commithash=HEAD

(4)git diff commithash1 commithash2 file 计较任意2个commithash的不同

(5)git diff branchname  filename  比较当前分支与指定分支的不同

9.git log

(1)git log brname  查看任意分支的log (有意选项:--graph  --oneline)

(2)git log origin/master  查看origin/master远程分支的log有重要的意义,可以知道远程分支的开发;使用fetch也是同步到该分支,不会产生冲突

(3)git log --stat HEAD 查看HEAD commithash修改过的文件有哪些

(4)git show 查看文件的具体修改内容

10.分支管理

1)git branch-a 列出本地所有分支(包括隐含分支)

2)git branch -r         #列出远程所有分支

3)git branch -a         #列出本地分支和远程分支

4)git clone -b branchname https://github.com/jetty/     #克隆指定的远程分支


5)git branch newbranchname              #新建一个本地分支

6)git checkout branchname               #切换到分支branchname,并将该分支检出到工作目录和暂存区

7)git checkout -b newbranchname            #创建并切换到新分支

8)git branch -m|-M oldbranch newbranch      #重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。

9)git branch -d|-D branchname #删除[-D强制删除]branchname分支

10)git branch -d -r branchname #删除远程branchname分支

11)git branch newbranch commithash #以commithash为起点,创建新分支newbranch

12)git remote  -v #查看origin对应的远程仓库地址

13) git remote add origin http://10.9.111.221/liujin/multiproject.git  #修改origin对应的远程分支

13)git log --oneline --decorate --graph --all  #查看提交历史、各分支指向以及分支的分叉情况

14)git push origin : branchname#推入origin指向的远程地址的branchname分支

15)git checkout maste -> git merge branchname#将branchname分支合入主分支,修改冲突的文件后,git add 文件 然后git commit

16)git tag -a  1.2  #打一个标签

11.合并与提交

fetch与pull

在将本地的代码库合并到远程代码库之前,需要做一次fetch或pull,并解决相关的冲突

1). 合并步骤

a. git fetch:相当于是从远程获取最新版本到本地origin/master,不会自动merge,于是不会产生冲突

   git fetch origin master         //首先从远程的origin的master主分支下载最新的版本到origin/master分支上,origin/master分支是一个隐形分支

   git log -p master..origin/master  //然后查看远程的log,-p显示每次提交的代码的修改部分

b. git merge origin/master          //最后进行合并


上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp    //从远程获取最新的版本到本地的tmp新分支上(:指取一个别名)

git diff tmp                   //比较当前分支与tmp分支的不同

git merge tmp               //之后再进行比较合并,并解决冲突

git branch -d tmp            //删除临时分支


2). git pull:相当于是从远程获取最新版本并merge到本地(相当于svn的update)

git pull origin master   //更新远程版本库到本地版本库

git pull origin branchname      //拉取fork库中的一个分支

上述命令其实相当于git fetch 和 git merge

在实际使用中,git fetch更安全一些

因为在merge前,我们可以查看更新情况,然后再决定是否合并

3).merge

git merge tmp   //将当前分支与tmp分支合并,如果存在冲突,那么修改冲突所在的文件,然后使用以下命令提交修改的文件

git commit -a -m 'Resolved conflict'  //提交(也可以用add和commit 2条命令替代)

git push origin master

最后就可以push到远程版本库了


在有冲突的文件中

<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。

  HEAD指向当前分支末梢的提交。

=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。

>>>>>>>之后的符号是该远程分支的名字。


三.提交远程版本库与合并

fetch与pull
在将本地的代码库合并到远程代码库之前,需要做一次fetch或pull,并解决相关的冲突
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master         //首先从远程的origin的master主分支下载最新的版本到origin/master分支上,origin/master分支是一个隐形分支

git log -p master..origin/master  //然后查看远程的log,-p显示每次提交的代码的修改部分
git merge origin/master          //最后进行合并

上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp    //从远程获取最新的版本到本地的tmp新分支上(:指取一个别名)
git diff tmp                   //比较当前分支与tmp分支的不同
git merge tmp               //之后再进行比较合并,并解决冲突
git branch -d tmp            //删除临时分支

2. git pull:相当于是从远程获取最新版本并merge到本地(相当于svn的update)
git pull origin master   //更新远程版本库到本地版本库
git pull fork源 分支      //拉取fork库中的一个分支
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
3.merge
git merge tmp   //将当前分支与tmp分支合并,如果存在冲突,那么修改冲突所在的文件,然后使用以下命令提交修改的文件
git commit -a -m 'Resolved conflict'  //提交(也可以用add和commit 2条命令替代)
git push origin master
最后就可以push到远程版本库了

在有冲突的文件中
<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。
HEAD指向当前分支末梢的提交。
=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。
>>>>>>>之后的符号是该远程分支的名字。



本文转自 a_liujin 51CTO博客,原文链接:http://blog.51cto.com/a1liujin/1725379,如需转载请自行联系原作者

相关文章
|
28天前
|
缓存 数据可视化 网络安全
Git命令大全
Git命令大全
58 1
|
1月前
|
开发工具 git
Git教程:深入了解删除分支的命令
【4月更文挑战第3天】
51 0
Git教程:深入了解删除分支的命令
|
2月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux git命令使用教程
【Shell 命令集合 文件管理】Linux git命令使用教程
34 0
|
2月前
|
开发工具 git
git常用命令整理
git常用命令整理
14 0
|
1月前
|
开发工具 git 开发者
Git常用命令大全:让你轻松驾驭版本控制
Git命令速查:`git init`新建仓库,`git clone`克隆,`git add`入暂存区,`git commit -m`提交,`git status`查看状态,`git log`查看历史,`git branch`创建分支,`git checkout`切换,`git merge`合并,`git pull`拉取更新,`git push`推送,`git remote -v`查看远程,`git checkout --`撤销本地修改,`git reset HEAD`取消暂存,`git reset --hard`回退版本。掌握这些,提升代码管理效率!
21 0
|
10天前
|
Shell 网络安全 开发工具
GIT常用命令
GIT常用命令
|
17天前
|
存储 Linux 开发工具
Git 分布式版本控制系统基本概念和操作命令
Git 分布式版本控制系统基本概念和操作命令
31 0
|
18天前
|
算法 Java BI
云效产品使用报错问题之平台上导出的统计数据和 git 中使用命令导出的数据统计都对不上,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
27天前
|
存储 开发工具 git
Git大揭秘:掌握开发者必备的常用命令手册
Git大揭秘:掌握开发者必备的常用命令手册
15 0
Git大揭秘:掌握开发者必备的常用命令手册
|
2月前
|
算法 开发工具 git
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
99 0

相关实验场景

更多