码迷,mamicode.com
首页 > 其他好文 > 详细

git

时间:2019-04-19 17:57:32      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:简单   first   merge   git clone   set   修改   添加   执行   不用   

                                                    git常用命令

一、

技术图片
 
技术图片
 

1、工作区:就是你在电脑里能看到的目录。      
暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以        我们把暂存区有时也叫作索引(index)。
      版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
2、图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。
图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。
当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工作区则不做出改变。
当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
当执行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
3、下载,官网点击下载
4、验证Git是否安装成功:cmd 输入 git version
5、git init   初始化git仓库
6、git clone git仓库地址   克隆项目

然后查看分支名,然后切换分支 git checkout -b template origin/template // 作用是checkout远程仓库origin的分支template,在本地起名为template分支,并切换到本地的template分支
git checkout -b develop origin/develop  //作用是checkout远程仓库origin的分支develop ,在本地起名为develop 分支,并切换到本地的develop 分支
git checkout -b desktop origin/desktop    // 作用参见上一步解释
7、$ git branch -r;列出远程分支名$ git branch -a;//列出所有分支名称如下: * 号表示当前分支

技术图片
 

说明: origin/v9.4.8.1, origin是远程仓库名,v9.4.8.1是远程仓库的一个分之,由上结果可以看出,远程仓库origin还有develop、v9.4.8.1、master等分支。
8、只给了master的地址,克隆远程dev分支(远程dev分支存在)
$ git clone -b dev  https://github.com/gypapple/firsttest.git
9、查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
修改用户名和邮箱地址:
$ gitconfig--globaluser.name"username"
$ gitconfig--globaluser.email"email"
10、git commit -m "这里是提交"
        git commit -am "这里是修改了代码后添加到暂存区,然后再提交"

技术图片
 

11、回滚:
git log查看日志详细信息
git log  --pretty=oneline查看日志简单信息

技术图片
 

git reset --hard  33b20e59....可不用写全
最好不要回滚
12、git reset HEAD清空暂存区
13、git rm a.txt删除            git rm -f a.txt强制删除
14、git add .添加所有的   git add a.txt添加a.txt文件
15、如果本地库使用master分支拉的,然后再创建dev分支,那么dev分支合并到master分支,可在master分支使用命令:git merge dev进行合并到master分支,此时合并到的是本地的master分支,若要推送到github上的master上则再需要在本地master分支使用命令git push origin master进行推送
然后dev分支没有存在的意义,可以删除dev分支:git branch -D dev
16、git push origin master推送到远程仓库master分支
        git push origin dev 推送到远程仓库dev分支
        git push -f origin master强制推送
        git push -f origin dev
17、git pull origin master 从远程master分支拉取代码
18、https://blog.csdn.net/zzh920625/article/details/78315127
19、git init初始化git仓库,ls -ah可以看到.git文件
20、git reset --hard HEAD^回滚到上一个版本
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
21、终极回滚:git reflog可以查看所有回滚的id。
22、git diff HEAD -- 文件名   查看工作区与版本库里面的最新的区别(注意空格)

 

git

标签:简单   first   merge   git clone   set   修改   添加   执行   不用   

原文地址:https://www.cnblogs.com/cherry1a/p/10737146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!