git常用命令

1.创建仓库

在某个目录下面,创建仓库(repository),创建的目录仓库里面的所有文件都可以被git管理起来。

如下,先创建一个空目录,然后git init就可以把这个目录变成git管理的仓库。

mkdir git_repository
cd git_repository
git init

2.将文件添加到仓库

先在上面的git_repository文件里面创建一个readme.txt,然后用git add告诉git,将文件添加到仓库:

git add readme.txt

git commit告诉git,把文件提交到仓库:

git commit -m "add a readme file" //-m后面是本次提交的说明,最好写如实记录的说明。

一次可以添加多个文件到git仓库:

git add file1.txt
git add file2.txt
git add file3.txt
git commit -m "add 3 files"

git commit 提交错了,可以用git commit -amend -m "说明" 撤回提交

git commit -amend -m 'new commit message'

3.git仓库状态查看

git status命令可以让我们时刻掌握仓库当前的状态,如下:

git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

显示readme.txt被修改过。

git diff查看文件有什么difference,可以追踪文件的修改,如下查看readme.txt修改的内容:

git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.

4.修改的版本回退

git log查看文件版本的历史记录,如下3个版本,描述说明分别是append GPL、add distributed、wrote a readme file。

git log
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:06:15 2018 +0800

    append GPL

commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:03:36 2018 +0800

    add distributed

commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 20:59:18 2018 +0800

    wrote a readme file

git log --pretty=oneline 查看显示一行的版本记录:

git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file

其中1094a...是版本号(commit id)

git reset 回退版本

//回退到上一个版本
git reset --hard HEAD^    
HEAD is now at e475afc add distributed

//回退到1094a...这个版本
git reset --hard 1094a
HEAD is now at 83b0afe append GPL

git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;(可撤销commit,但不会撤销该commit提交的更改)。
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;(基撤销了commit,又冲掉了该commit提交的更改内容)。

git reflog 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

git reflog 可以查看删除的commit记录,以及采用版本回退reset操作也可以查看所有记录;

git fog 不能查看版本回退reset操作后的所有记录。

5.工作区和暂存区

工作区就是的当前创建的git_repository目录就是工作区。

git add 是将工作区的文件添加到暂存区,然后git commit是将暂存区的内容提交到当前分支。

6.撤销修改

用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区:

git reset HEAD readme.txt
Unstaged changes after reset:
M	readme.txt

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销:

git checkout -- readme.txt

git status
On branch master
nothing to commit, working tree clean

7.删除文件

rm 是从工作区中删除文件

rm test.txt

git rm 是从仓库中删除文件,git rm之后需要在用git commit就可以从仓库中删除文件。

git rm test.txt

git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

git checkout其实是用仓库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

git checkout -- test.txt

8.添加远程仓库

进入一个本地仓库,然后使用git remote add关联远程仓库

git remote add origin git@github.com:michaelliao/learngit.git

其中origin是远程仓库的名字。

接下来把本地仓库内容推送到远程仓库用git push

git remote add origin git@github.com:michaelliao/learngit.git

第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

以后推送就可以直接用以下命令

git push origin master

9.git通过命令忽略指定文件

$ git update-index --assume-unchanged /path/to/file

10.创建dev分支,然后切到dev分支

git checkout -b dev

#相当于以下两条命令
git branch dev
git checkout dev

11. 合并分支dev分支到当前分支上

git merge dev

12. 删除分支

git branch -d <name>

13. 创建远程dev分支到本地

git checkout -b dev origin/dev

14. git pull 和 git pull --rebase

git pull = git fetch + git merge

git pull = git fetch + git rebase

rebase操作可以把本地未push的分叉提交历史整理成直线;

rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

15. git tag 

  • 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;

  • 命令git tag可以查看所有标签。

16. git clean 删除操作

  • git clean -n  //列出将要删除的文件目录
  • git clean -d -f 删除文件

17. git stash

  • git stash  //将没有提交的修改暂存到stash中
  • git stash pop //将暂存在stash 中的修改恢复
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值