Git常用命令学习笔记

Posted suixinkai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git常用命令学习笔记相关的知识,希望对你有一定的参考价值。

(1)安装Git

   1、Linux下

      先运行git看看当前有没有安装,大多数Linux会有很友好的提示信息告诉你安装Git的命令。比如Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以安装,比较老的版本则运行sudo apt-get install git-core

   2、Windows下

      直接在官网下载安装程序https://git-scm.com/downloads。按照默认安装,安装完成后在安装目录打开git-bash.exe(一个命令行工具)即可直接操作Git。

   安装完成后运行

    git config --global user.name "your name"

    git config --global user.email "[email protected]"

 

   全局设置用户名和e-mail

(2)常用命令

  常规操作

    git init  初始化一个仓库

    git add <file>  将修改添加到暂存区,可同时添加多个

    git rm <file>  提交一个删除文件操作到暂存区

    git commit  提交

    git status  查看工作区状态

    git diff  查看修改内容

    git reset --hard commit_id  切换版本,HEAD指向当前版本,HEAD^指向上个版本,HEAD^~20前二十个版本

    git log  查看提交历史

    git reflog  查看命令历史(切换打未来版本是用于查看未来版本的commit_id)

    git checkout -- file  丢弃工作区的修改

    git reset HEAD file  丢弃暂存区的修改

  远程库操作

    git remote add <自定义仓库名> [email protected]:path/repo-name.git  SSH方式关联一个远程库

    git push -u origin <本地分支名>  关联后,第一次推送master分支的所有内容,第一次推送后,后面的推送可以去掉 -u 参数,-u相当于--set-upstream 另外,第一次从远程仓库clone后,远程仓库的分支与本地分支的关联性默认是按照同名分支来关联的。当在这些分支上开发并push的时候,默认push到同名分支。当在本地新建了一个远程库不存在的分支时,第一次推送该分支到远程库需要加上这个参数。这时候会在远程库新建同名分支并推送代码,并将两个分支关联起来。

    git branch --set-upstream <本地分支名> origin/<远程分支名>  建立本地分支与远程分支的关联关系

    git checkout -b <本地分支名> origin/<远程分支名>  将远程库里的指定分支拉取到本地(本地不存在该分支),该操作将会在本地新建一个分支并与远程库的该分支关联起来,本地分支名最好与远程分支名保持一致。

    git pull <远程库名> <远程分支名>:<本地分支名>  从远程库获取某个分支的更新,并与本地指定分支进行快速(fast_forward,不会留下记录)merge,如果与本地当前分支merge,则冒号后面的内容可以省略,当push时,远程分支的内容比本地新的时候,也需要执行本操作。

    git fetch <远程库名> <远程分支名>:<本地分支名>  从远程库获取代码,与pull不同的是,不会自动merge,因此fetch到一个已经存在的分支时会报错

    git clone [email protected]:path/repo-name.git  克隆一个仓库

    git clone https://github.com/<user-name>/<repo-name>.git  这种格式为https协议的方式,Git支持多种协议,SSH协议的速度快

  分支操作

    git branch  查看分值,带 * 表示当前分支

    git branch <name>  创建分支

    git checkout <name>  切换分支

    git checkout -b <name>  创建并切换分支

    git merge <name>  合并某分支到当前分分支

    git branch -d <name>  删除分支,删除一个没有合并过的分支使用-D属性

    git log --graph  查看分支合并图

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

    git merge --no-ff -m "****" <branch>  --no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。禁用fast forward后Git就会在merge时生成一个新的commit,所以需要 -m 添加备注信息。

    * git stash  把当前工作现场“储藏”起来,包括工作区和暂存区没有commit的所有内容

    git stash list  查看“储藏”的工作目录列表

    git stash apply  恢复到指定的工作目录

    git stash drop  删除指定的工作目录

    * git stash pop  从“储藏”的工作取出最近的工作目录,并删除,相当于上面两条命令

  标签管理

    git tag <tag_name>  在当前分支打一个新标签

    git tag  查看所有标签

    git tag <tag_name> <commit_id>  在指定commit处打一个标签

    git tag -a <tag_name> -m <comment_content> <commit_id>  创建一个带说明的标签

    git show <tag_name>  查看标签详细信息

    git tag -d <tag_name>  删除本地标签

    git push <仓库名> :/refs/tags/<tag_name>  从远程仓库删除指定标签

    git push <仓库名> <tag_name>  推送指定标签到远程仓库

    git push <仓库名> --tags  一次性推送所有尚未推送的标签

    

  多人协作

    查看远程库信息  git remote -v

    本地新建的分支如果没有推送到远程,对别人是不可见的。

    从本地推送分支使用  git push origin <本地分支名>  ,如果推送失败,使用  git pull  抓取远程的新提交,如有冲突,先解决冲突,如果提示no tracked则表示本地分支没有与远程建立关联,直接添加  -u  参数或者  git branch --set-upstream <本地分支名> <远程库名>/<远程分支名>  建立关联。

    从本地创建远程仓库对应的分支,使用  git checkout -b <本地分支名> <远程库名>/<远程分支名>

以上是关于Git常用命令学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Git学习笔记--常用命令

Git 学习笔记

git常用命令笔记

菜鸟笔记之学习github

git常用命令,参照廖雪峰老师的git教程

学习笔记——Git命令