廖雪峰git学习笔记总结-git常用命令

git init  #把这个目录变成Git可以管理的仓库

git add readme.txt    # 把文件添加到git仓库

git commit -m 'wrote a readme file'  # 告诉git把文件提交到仓库, -m  后面输入的是本次提交的说明

git status   # 查看当前仓库的状态,有什么文件被修改了,新增了什么文件。。。

git diff readme.txt  #查看文件比上次提交的时候,修改了哪些内容

git log --pretty=oneline   # 查看commit提交的历史记录,可以查看到commit id,加上--pretty=online显示简化内容,  不加选项的话显示详细内容

git reset --hard HEAD^        # 回退到上一次commit的版本,回退之后,这个commit版本之后commit的版本通过git status就看不到了。不过也没事儿,git reflog可以看到每一次执行的命令,这样即使你退回了之前的版本,想回到将来的版本,也是没问题的。

git reset --hard 4dc0ecf331b6245a9704c5b14163b7553b5411bf   # 回退到指定的commit id对应的版本。   Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD的指向修改了而已。

git reflog      # 查看你的每一次命令

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

git 有一个暂存区,git add 的时候其实就是把文件添加到了暂存区里边,然后git commit是从暂存区提交到分支版本库中。

git diff HEAD -- readme.txt      # 查看工作区和版本库中readme.txt文件的差别

git checkout -- readme.txt       # 当文件被修改,但是还未执行git add 和git commit,可以通过这个命令来回滚到和版本库一样的状态

git reset HEAD readme.txt         # 当执行了git add,但是又不想commit了,想回滚回去,可以执行这个命令,清除暂存区。保持版本库和工作区的内容一样。

想删除文件,需要执行以下操作:

rm   test.txt

git rm test.txt

git commit -m 'rm test.txt'

如果删除了文件,但是还没有commit,现在想恢复文件:

git reset HEAD test.txt

git checkout -- test.txt

添加远程库,并把当前目录推送到远程库:

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

git push -u origin master       # -u 把本地的master和远端的master联系起来,以后推送的时候命令就比较简单了

git checkout -b dev  # 创建一个dev分支 -b表示创建,并切换

git branch dev     #创建dev分支

git checkout dev       #切换到dev  checkeout  切换分支

git branch       # 查看当前有哪些分支

git merge dev              #   把dev分支的内容合并到master。

git branch -d dev      # 删除分支

git log --graph --pretty=oneline --abbrev-commit   #  查看分支合并图

在合并分支的时候,如果两个分支的文件有冲突,则必须要解决冲突才能完成合并。

合并分支的时候有两种模式:

Fast forward

--no-ff

第一种模式会把两个分支合并到一块儿,第二个模式会在合并的时候重新提交一个commit,这样,即使把分支删除了,也可以恢复回去。

git merge --no-ff -m "merge with no-ff"         #  使用no-ff方式合并分支。

git stash         # 保存当前工作区的状态,比如你正在开发代码,突然需要修复一个bug,这时就可以先stash保存一下当前的状态,然后去修改bug,然后再通过命令,切回来。

git stash list    # 查看保存的状态列表,

git stash apply   # 恢复保存的状态,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

git stash pop      #恢复到保存的工作区的状态,而且还会把保存的状态删了。

解决bug,从master新建一个分支出去,解决问题后合并到master,然后删除分支。

新增加一个功能,从dev中新增一个分支,功能测试完毕后合并到dev中,然后删除分支。

git push origin master      #把本地的分支,推送到远端的master

git push origin dev           # 推送到远端的dev分支

git tag v0.9 6224937        # 打tag,把那个commit 绑定到tag

git  tag v1.0               # 打tag,默认对应最近的一次commit。

git tag -a v0.1 -m "version 0.1 released" 3628164   # -a 指定标签名  -m 描述内容

git  tag       #查看所有标签

git show tagname   #查看tag的信息

git push origin v1.0    #推送指定tag到远端

git push origin --tags  # 推送所有tags到远端。

删除一个tag需要执行两个步骤:

git tag -d v1.0                      #本地删除tag

git push origin :refs/tags/v1.0      #通过push,删除远端的tag

 git config --global color.ui true     #设置颜色,在git status的时候有一些颜色

忽略特殊文件:

在工作区的根目录下创建一个名为:.gitignore 的文件,把要忽略的文件写到里边就行了

如果git add  test.txt失败,则有可能是在.gitignore文件中定义了忽略这个文件,强制添加可以使用git add -f 

配置别名:

git config --global alias.st status  

设置完成后: git st  就等于 git status

git config --global alias.co checkout

$ git config --global alias.ci commit

$ git config --global alias.br branch

git ci -m "bala bala bala..."

git config --global alias.unstage 'reset HEAD'

 git unstage test.py

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

每个仓库的Git配置文件都放在.git/config文件中

$ cat .git/config 

[core]

    repositoryformatversion = 0

    filemode = true

    bare = false

    logallrefupdates = true

    ignorecase = true

    precomposeunicode = true

[remote "origin"]

    url = git@github.com:michaelliao/learngit.git

    fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]

    remote = origin

    merge = refs/heads/master

[alias]

    last = log -1

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

$ cat .gitconfig

[alias]

    co = checkout

    ci = commit

    br = branch

    st = status

[user]

    name = Your Name

    email = your@email.com

原文地址:https://www.cnblogs.com/yangruizeng/p/7419543.html