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,如需转载请自行联系原作者

相关文章
|
3月前
|
安全 开发工具 git
git的常用操作命令
git的常用操作命令
292 57
|
4月前
|
存储 项目管理 开发工具
Git常用命令及操作技巧
以上是Git的常用命令及操作技巧,尽管看起来有些繁琐,但实际上只要花费一些时间进行实践,您将很快熟练掌握。随着使用熟练度的提高,您会发现Git对项目管理和协同工作的强大帮助。
127 20
|
6月前
|
人工智能 前端开发 Java
用git rebase命令合并开发阶段中多条commit提交记录
通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
832 60
|
5月前
|
Linux 开发工具 git
版本控制工具:Git的安装和基本命令使用指南。
结束这段探险,掌握了Git你就等于掌握了一个宝藏,随时可以瞥见你的编程历程,轻松面对日后的挑战。Git,无疑是编程者的强大武器,开始你的Git探险之旅吧!
204 28
|
10月前
|
开发工具 git
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
|
8月前
|
网络安全 开发工具 git
mac git clone命令提示git@gitee.com: Permission denied (publickey).问题修复
mac git clone命令拉取gitee上项目代码时提示密钥问题
|
8月前
|
Java 网络安全 开发工具
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
152 0
|
9月前
|
机器学习/深度学习 Shell 网络安全
【Git】Git 命令参考手册
Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
229 3
|
11月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
275 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令