`
wyf
  • 浏览: 433284 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

git常用命令

 
阅读更多

1、安装git

 

sudo apt-get install git

 设置操作git的用户邮箱

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

 

 

2、初始化git仓库(repository

 

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

 3、添加文件(暂存区)

 

 

$ git add [filename]
例如:$git add readme.txt a.txt
多个文件 空格分开,或多次add

 

 4、提交文件

 

$ git commit -m "备注信息"

 5、查看仓库当前状态

 

 

$ git status

 6、查看difference,对比文件

 

 

$ git diff readme.txt 
命令可以查看工作区和版本库里面最新版本的区别git diff HEAD -- readme.txt
$ git diff HEAD -- readme.txt 
diff --git a/readme.txt b/readme.txt
index 76d770f..a9c5755 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,4 +1,4 @@
 Git is a distributed version control system.
 Git is free software distributed under the GPL.
 Git has a mutable index called stage.
-Git tracks changes.
+Git tracks changes of files.

 7、查看历史记录

 

 

$ git log
整齐显示:$ git log --pretty=oneline
$ git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file

 8、回退到上一版本

$ git reset --hard HEAD^
回退到具体版本$ git reset --hard 1094a,具体commitID的前几位即可

 9、记录每一次命令

$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file

 10、撤销修改

丢弃工作区修改

$ git checkout -- readme.txt

 撤销暂存区修改

$ git reset HEAD readme.txt

 

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

11、删除文件

$ rm test.txt
$ git rm test.txt

 12、github远程仓库生成ssh key

$ ssh-keygen -t rsa -C "youremail@example.com"

 13、关联本地和github仓库

$ git remote add origin git@github.com:[个人账户]/[仓库名称].git

 

 14、把本地库的所有内容推送到远程库上

$ git push -u origin master

如果服务器上有README.md pull的时候加参数:

$git pull origin master –allow-unrelated-histories

 

 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

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

以后推送用

$ git push origin master

 15、克隆一个本地仓库

$ git clone [github仓库地址]

 

 16、创建分支

$ git checkout -b dev

 git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

 

$ git branch dev
$ git checkout dev

 16、查看所有分支

$ git branch

 git branch命令会列出所有分支,当前分支前面会标一个*号。

17、切换分支

$ git checkout master
$ git checkout dev

 18、合并分支,把dev合并到master,首先切换到master

$ git merge dev

 no-ff模式合并,合并dev到master,这样会写log

 

$ git merge --no-ff -m "merge with no-ff" dev

 

19、删除dev分支

$ git branch -d dev

 查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

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

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

删除分支:git branch -d <name>

20、如果合并存在冲突,修改冲突文件,执行git add, git commit -m "remark"

查看合并后的log

$ git log --graph --pretty=oneline --abbrev-commit

 21、封存当前的工作状态

$ git stash

 查看封存的状态

$ git stash list

 恢复工作状态并删除封存

$ git stash pop

 或用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

后恢复指定的stash

$ git stash apply stash@{0}

 22、查看远程库信息

$ git remote

 23、推送master分支

$ git push origin master

 推送dev分支

$ git push origin dev

 24、创建远程origindev分支到本地

$ git checkout -b dev origin/dev

 25、多人协作

多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

26、打标签tag

$ git tag v1.0

 查看标签

$ git tag

 为commitid打标签,先通过$git log --pretty=oneline --abbrev-commit查看commitid

$ git tag v0.9 f52c633

 查看标签信息

$ git show v0.9

 创建带有说明的标签

$ git tag -a v0.1 -m "version 0.1 released" 1094adb

 删除标签

$ git tag -d v0.1

 推送到远程

$ git push origin v1.0

 一次性推送全部尚未推送到远程的本地标签

$ git push origin --tags

 删除远程标签,先删本地标签,然后删远程

$ git tag -d v0.9
$ git push origin :refs/tags/v0.9

 

分享到:
评论

相关推荐

    git常用命令总结git常用命令总结git常用命令总结git常用命令总结

    git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git...

    git常用命令.docx

    Git 常用命令整理及解析 Git 是一个开源的分布式版本控制系统,用于跟踪项目中的代码变化,可以帮助开发者更好地管理代码。下面是 Git 中一些常用的命令,这些命令可以帮助开发者快速掌握 Git 的使用。 基本命令 ...

    git常用命令手册

    ### Git常用命令手册详解 #### 一、概览 本篇文档主要介绍了一套由国外开发者整理的Git常用命令速查表,旨在帮助用户快速掌握并应用Git的基础操作。通过这些简洁明了的命令,即使是Git新手也能迅速上手进行版本...

    一张图展示 Git 常用命令.pdf

    一张图展示 Git 常用命令.pdf

    git常用命令速查表

    git常用命令速查表

    git常用命令总结.txt

    ### git常用命令总结 在日常开发工作中,Git作为版本控制系统被广泛使用,它能帮助团队高效地管理代码版本,提高协同工作的效率。本文将根据给定的文件信息,详细总结并解释Git中的常见命令及其用途。 #### 1. Git...

Global site tag (gtag.js) - Google Analytics