Git

说明:git命令小结
1. 创建一个仓库

$ git init

新一个空文件夹,在这个文件夹下打开git bash,或者在git bash中cd到新建的这个目录,执行git init命令。文件夹中会出现一个.git的目录,此时这个文件夹就成了一个本地git仓库。
$ git clone url

从远程端克隆项目。url为项目地址。

2.编辑文件后提交到本地仓库,是提交到本地仓库。这里分两步:

//第一步:
$ git add file

file为你要提交的文件名,此时只是当你修改的部分放到了暂存区,也就是说你告诉git我的这些修改是我要准备提交的。可以操作多次以添加多个文件到暂存区。
也就是说你的文件要提交,首先必须要放到暂存区。然后才能提交到仓库。

//第二步:
$ git commit -m "注释信息"

“注释信息表示你对你的修改要做的说明”,此时你就将你放在暂存区的修改持久化到本地仓库(你当前所在的分支)。
此操作会将你暂存区的所有文件提交到仓库中。记住,git commit 前一定要先git add,如果你不git add,那么你的修改就会commit到本地仓库。

3.我要看看我的本地仓库的状态信息。如我的仓库有无文件要提交,没有提交的文件是处于什么状态(即有无放入暂存区)。

$ git status

//当你只是在你的仓库中创建一个文件,然后操作git status显示如下
On branch master //你当前所在的分支

No commits yet //表示你当前的文件还没有提交过,仓库中还没有它

Untracked files: //表示你的文件还没有放入暂存区,即没有进行git add操作
  (use "git add <file>..." to include in what will be committed)

        example.txt  //文件名

nothing added to commit but untracked files present (use "git add" to track)
$ git add example.txt
$ git status

//当你进行了git add操作后再执行git status
On branch master//你当前所在分支

No commits yet//同上

Changes to be committed://表示你的文件可以提交到本地仓库了
  (use "git rm --cached <file>..." to unstage)//后面再说

        new file:   example.txt //表示是一个新的文件
$ git commit -m "I commit a file to local repository"
$ git status
//当你将你的文件提交到了仓库之后再执行git status
On branch master //你当前所在的分支
nothing to commit, working tree clean //没有什么需要提交,工作区很干净。
这说明你的修改已全部提交到了本地仓库了。此时还只是在你的本地仓库中,并没有提交到远程服务器上。

4.我想看看我作了哪些修改?

$ git diff 文件名
//这个命令可以查看你对某个文件所做的修改记录。这是在git add之前操作的。

5.回退版本
在回退之前我们要先看一下提交的历史记录。

$ git log //该命令用于查看提交历史记录
//命令反馈结果
commit aeaf2961d9be1838213dacaa7300105c2fe0b60e (HEAD -> master)//版本号
Author: xzz <*****@qq.com> //提交人
Date:   Mon Dec 18 09:14:36 2017 +0800 //时间

    1  //注释信息

commit 133e91c8482a2d25a0b4316f7ae46450a13745a7
Author: xzz <*****@qq.com>
Date:   Mon Dec 18 09:13:35 2017 +0800

    0

commit d1a8efaec068b8e957e8d4eda0c2ebf61fd2e48f
Author: xzz <*****@qq.com>
Date:   Sat Dec 16 18:20:02 2017 +0800

    I commit a file to local repository

//如果你觉得以上输出信息太多,则可使用一些约束
$ git log --pretty=oneline 
//此时只会显示版本号和注释信息
aeaf2961d9be1838213dacaa7300105c2fe0b60e (HEAD -> master) 1
133e91c8482a2d25a0b4316f7ae46450a13745a7 0
d1a8efaec068b8e957e8d4eda0c2ebf61fd2e48f I commit a file to local repository

现在可以查看历史记录了,就可以执行版本回退了。

$ git reset --hard HEAD^
//HEAD^表示回退到上一个版本,HEAD^^表示上上一个版本,如果要回退到上100个版本,则用^表示不现实了,此时用HEAD~100表示。那是不是我每次回退还得要数1234567呢?答案非也,你可以自由切换到任何一个版本,请看后面。
//执行结果
HEAD is now at 133e91c 0 //告诉你现在在哪个版本,133891c表示版本号的前7位数。
//你再执行git log命令,发现回退之前的那个版本不见了,即回退后我要前进怎么办?

$ git relog  //查看你的版本操作记录,即提交与回退操作记录
//执行结果如下
133e91c (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
aeaf296 HEAD@{1}: commit: 1
133e91c (HEAD -> master) HEAD@{2}: commit: 0
d1a8efa HEAD@{3}: commit (initial): I commit a file to local repository
//前面的部分表示的是版本号的简写(即版本号的前几位数,这是一个16进制表示的),执行命令:
$ git reset --hard 版本号//指定版本号,你想到哪里就到哪里。

6.撤销修改
撤销未保存到暂存区(未执行git add)的修改。

$ git checkout -- 文件名
//注意-- 不要忘记了,否则就成了另外一个命令。
//重点:这个命令只能撤销你在git add之前的修改,如果你将你的修改git add到暂存区了,如何解决呢?请往下看:
$ git reset HEAD 文件名
//是不是很有见过这个命令,它会将我们git add到暂存区的修改撤销放回到工作区(git add之前你的修改所在位置为工作区),即回退到你git add之前的状态。如果你的这些修改不想要了,那么就执行上一步的命令‘git checkout -- 文件名’,就将其从工作区中也给干掉了。那你说我已经给commit 了,那怎么办呢?
请继续往下看:
如果你没有推送到远程服务器上:那么也还有办法,我们前面的版本回退就,回退到上一个版本就OK了。git reset HEAD^

7.删除文件

$ rm 文件名
//这也是一个修改,接着要操作git add ,git commit
$ git rm 文件名 
//这个相当于 rm 文件名 + git add 文件名 这两步操作。
//如果你发现误删了,参考前面的撤销修改操作。

8.管理分支

//1.创建分支
$ git branch dev //创建dev分支
$ git checkout dev //切换到dev分支
$ git checkout -b dev //相当于上面两条命令,创建并切换到dev分支
$ git branch  //查看有哪些分支
$ git branch -d dev //删除dev分支
$ git branch -D dev //当dev没有合并前是无法删除的,此时可以强行删除一个没有合并过的分支
$ git merge dev //将指定的dev分支合并到当前所在分支,这会将分支历史删除
$ git merge --no-ff -m "注释信息" dev //合并dev到当前分支
$ git log --graph --pretty=oneline //查看分支合并历史

//2.Bug分支,当我们在修改Bug时,当前工作被中断了,但是当前工作又没有做完而无法提交,此时需要将当前工作“收起来”放到一边,bug修改完了再“拿出来”。
$ git stash //然后你再git status,发现提示你的工作区nothing to commit.
$ git stash list //查看的收起记录
$ git stash apply  //将“收起来的”修改“还原”。
$ git stash drop  //删除你的“收起记录”
$ git stash pop  //相当于上面两步操作,还原收起并删除收起记录。

9.远程操作

$ git clone url //克隆远程仓库,此时远程仓库会被自动命名为 origin
$ git clone -o 别名 url //克隆版本库的时候,给远程仓库一个别名

$ git remote //查看所有的远程仓库信息
$ git remote -v //查看所有的远程仓库的详细信息
$ git remote show 主机名 //查看指定远程仓库的详细信息

$ git remote add 远程仓库名 url  //将远程仓库与本地仓库相关联
$ git remote rm 主机名  //删除远程仓库
$ git remote rename 原仓库名 主仓库名 //给远程仓库改名
$ git push origin master //将master分支推送到远程分支

$ git fetch 远程仓库名 //将远程仓库上的所有更新取回到本地,它不会与你现有的代码合并。
$ git fetch 远程仓库名 分支名 //将远程仓库上指定分支的更新取回到本地,它不会与你现有的代码合并
$ git branch -r //查看远程分支
$ git branch -a //查看远程仓库的所有分支
$ git merge origin/master //将远程分支origin/master与当前分支合并
$ git rebase origin/master //等同于上一条命令

$ git pull 远程仓库名 远程分支名:本地分支名 //取回远程上某个分支的更新并与本地指定分支合并,如果本地分支为当前分支,则冒号及其之后的本地分支名可以省略。等同于git fetch 和 git merge组合。
$ git branch --set -upstream master origin/next //手动建立跟踪关系

$ git push //将本地更新推送到远程
$ git push 远程仓库名 本地分支名:远程分支名 //注意与git pull中本地分支与远程分支的顺序是反的。
$ git push 远程仓库名 本地分支名 //省略了远程分支名,此时将本地推送到远程与之存在跟踪关系的远程分支,如果远程分支不存在,则会被新建。
$ git push 远程仓库名 :远程分支 //省略了本地分支名则表示删除指定的远程分支,即相当于推送了一个空的本地分支到远程上。
$ git push -u origin master //将master分支推送到远程origin仓库,同时指定origin为默认远程仓库,后面使用git push时就可以不加参数使用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值