第一部分:个人整理部分(读《Git教程By廖雪峰.pdf》笔记)

/* 配置全局参数 */
git config --global user.name "username"
git config --global user.email "email@xx.xxx"

/* ssh */
ssh-keygen -t rsa -C "email" //如果用户目录下没有.ssh文件夹,或者有该文件夹,但是文件夹中无id_rsa和id_rsa.public文件,则需要执行该命令。注意:-C 的C是大写。

/* local repository */
git init //将当前目录变成git可以托管的仓库
git add //告诉git把文件提交到仓库,加入到《暂存区》

git rm --cached <added_file_to_undo>  //删除放到暂存区中的文件,必须加上--cached,否则工作区的该文件将会被删除。

git commit -m "xxxx" //将缓存区的文件提交到仓库,-m后的内容表示message。
git status //查看当前的git状态
//针对新建文件,没有被add到《缓存区》的文件,表示该文件没有被添加过,会提示,Untracked files:
//针对已经编辑,没有add到《暂存区》的文件,会提示:Changes not staged for commit:
//针对已经编辑,并且add到《暂存区》的文件,会提示:Changes to be committed:
git diff //查看具体的不同之处,工作区和暂存区之间的区别。
git diff HEAD -- filename //命令可以查看工作区和版本库里面最新版本的区别
git log //查看提交的版本历史信息,git log --pretty=oneline可以查看单行简化信息
git reflog //可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录。
注意:如果现在有3个提交,version_1 version_2 version_3,现在执行git reset --hard head^,命令,则head指向version_2提交,此时通过git log只能看到version_1和version_2
的提交,但是如果现在要恢复到version_3,可以使用git reflog命令查看所有的commit记录,查找到刚刚的version_3的commit id,使用git reset --hard [commit id]即可恢复到
version_3的提交。
git reset --hard head^ //表示退回到上一个版本,head表示当前的版本,head^表示上一个版本,head^^表示上上个版本,head~5,表示上5个版本
git reset --hard [id] //表示回退到某个commit id的版本,hard的具体作用可以在命令行输入git reset -help查看

git checkout -- filename //命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这有两种情况:一种是readme.txt修改后还没有被放到暂存区,
//现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
//总之,就是让这个文件回到最近一次git commit或git add 时的状态。
git reset HEAD filename //将暂存区中的文件,恢复到head指向的commit版本,工作区并不改变。
git rm filename //在工作区中删除某文件后,如果确信是删除该文件,则使用该命令将文件从暂存区中删除。
//如果是误删,则使用git checkout -- filename来恢复该文件,或者使用git reset命令从版本库中恢复到历史的某个版本。

/* remote repository */
git remote add origin [url] //要关联一个新的远程仓库,origin是该远程仓库的名字,以便将来的使用。关联之后就可以使用git push将本地的仓库推送到远程仓库了。
git push origin master //将本地仓库的master推送到远程仓库origin上,第一次推送的时候需要加"-u",即:git push -u origin master
git clone [url] //从远程仓库克隆到本地
git branch [name] //创建一个分支
git checkout [name] //跳转到该分支
git checkout -b [name] //创建该分支,并跳转到该分支
git branch //查看所有分支,当前分支前面会标一个*号。
git merge [name] //将name分支和当前分支合并,提示fast-forward表示快速模式,只是移动指针。
git branch -d [name] //删除某分支,删除时,当前不能和name是相同的分支。

第二部分:转载其他人优秀博客

Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。

Git常用操作命令:

1) 远程仓库相关命令

检出仓库:$ git clone git://github.com/jquery/jquery.git

查看远程仓库:$ git remote -v

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name]

修改远程仓库:$ git remote set-url --push [name] [newUrl]

拉取远程仓库:$ git pull [remoteName] [localBranchName]

推送远程仓库:$ git push [remoteName] [localBranchName]

*如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

$git push origin test:master         // 提交本地test分支作为远程的master分支

$git push origin test:test              // 提交本地test分支作为远程的test分支

2)分支(branch)操作相关命令

查看本地分支:$ git branch

查看远程分支:$ git branch -r

创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

切换分支:$ git checkout [name]

创建新分支并立即切换到新分支:$ git checkout -b [name]

删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

创建远程分支(本地分支push到远程):$ git push origin [name]

删除远程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name]

*创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)

$git symbolic-ref HEAD refs/heads/[name]

$rm .git/index

$git clean -fdx

3)版本(tag)操作相关命令

查看版本:$ git tag

创建版本:$ git tag [name]

删除版本:$ git tag -d [name]

查看远程版本:$ git tag -r

创建远程版本(本地版本push到远程):$ git push origin [name]

删除远程版本:$ git push origin :refs/tags/[name]

合并远程仓库的tag到本地:$ git pull origin --tags

上传本地tag到远程仓库:$ git push origin --tags

创建带注释的tag:$ git tag -a [name] -m 'yourMessage'

4) 子模块(submodule)相关操作命令

添加子模块:$ git submodule add [url] [path]

如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行

更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下

删除子模块:(分4步走哦)

1) $ git rm --cached [path]

2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉

3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉

4) 手动删除子模块残留的目录

5)忽略一些文件、文件夹不提交

在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

target

bin

*.db

=====================

Git 常用命令

git branch 查看本地所有分支
git status 查看当前状态 
git commit 提交 
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am "init" 提交并且加注释 
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上 
git remote show origin 显示远程库origin里的资源 
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联 
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
---------------------------------------------------------
git remote add origin git@github.com:username/Hello-World.git
git push origin master 将本地项目给提交到服务器中
-----------------------------------------------------------
git pull 本地与服务器端同步
-----------------------------------------------------------------
git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
git push origin serverfix:awesomebranch
------------------------------------------------------------------
git fetch 相当于是从远程获取最新版本到本地,不会自动merge
git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
git checkout branch_1.0/master 切换到branch_1.0/master分支
du -hs

-----------------------------------------------------------
mkdir WebApp
cd WebApp
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:daixu/WebApp.git
git push -u origin master

第三部分:一个比较全面的图片

git使用常用命令的更多相关文章

  1. GIT 版本控制常用命令学习汇总

    GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...

  2. git log 常用命令及技巧

    git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...

  3. Git基本常用命令

    Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...

  4. Git是什么、Git的功能、为什么versioncontrol用Git、Git的常用命令、Git的优缺点

    Git是什么 git是目前世界上最先进的分布式版本控制系统(没有之一). Git是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版 ...

  5. Git stash 常用命令

    参考: Git: How to look at the stash Git学习笔记05--git stash Git stash 常用命令 1.git stash: 保存当前的工作进度: 2.git ...

  6. Git 基础 —— 常用命令

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...

  7. git之常用命令

    git之常用命令 1.下载远程仓库最新代码 $ git pull --rebase origin master 2.上传代码 $ git push origin master 3.退出编辑 ESC + ...

  8. git的常用命令。。

    git的常用命令.. git help <command>  显示command的help git show  显示某次提交的内容 git show $id git co -- <f ...

  9. Git - Git基本常用命令

    Git基本常用命令 mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示当前目录的路径. git init          把当前的目录变成可以管理 ...

  10. Git的常用命令记录

    Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支  ...

随机推荐

  1. YQCB冲刺第二周绩效评价

    标准队员 工作质量 20% 工作态度 20% 工作量 30% 工作难易程度 20% 团队意识 10% 总分 陈美琪 17 18 24 17 9 85 张晨阳 19 19 27 19 9 93 刘昭为 ...

  2. Linux命令(八)过滤文本 grep

    grep 命令介绍 grep是一个强大的文本搜索工具命令,用于查找文件中符合指定格式的字符串,支持正则表达式.如不指定任何文件名称,或是文件名为 -,则gerp命令从标准输入设备中读取数据. grep ...

  3. 返回通知的方法 是void

  4. poj2135 Farm Tour(费用流)

    Description When FJ's friends visit him on the farm, he likes to show them around. His farm comprise ...

  5. mininet invalid literal for int() with base 10: 'cpu.cfs_period_us:'

    问题产生原因:内核编译时没有加入 CONFIG_CFS_BANDWIDTH 选项 http://www.haifux.org/lectures/299/netLec7.pdf https://mail ...

  6. LANMP环境编译参数查看方法

    nginx编译参数查看:/usr/local/nginx/sbin/nginx -V apache编译参数查看:cat /usr/local/apache2/build/config.nice mys ...

  7. IntelliJ IDEA(2018)安装详解

    转: IntelliJ IDEA(2018)安装详解 置顶 2018年06月06日 22:58:45 Lazymanx 阅读数:95701   版权声明: https://blog.csdn.net/ ...

  8. 21天实战caffe笔记_第三天

    1 深度学习工具汇总 (1)  caffe : 由BVLC开发的基于C++/CUDA/Python实现的卷积神经网络,提供了面向命令行.Matlab和Python的绑定接口.特性如下: A 实现了前馈 ...

  9. git-jenkins-k8s构建tomcat项目实践

    相关环境(部署安装略...):jenkins 安装k8s 集群环境部署docker 私有仓库搭建 jenkins 创建项目 Execute shell 构建docker镜像上传到私有仓库,以构建时间做 ...

  10. Access时间日期函数大全

    这里特别推荐WeekdayName() 函数.MonthName() 函数,将日期转换为中文星期名与月份,如"星期一"."五月"一.Date() 函数.Now( ...