常用Git操作

--------------------git--------------------
1、简介
1、Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。[1] Git的读音为/g?t/。
2、Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[2] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

2、特点
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

--------------------git与SVN的对比--------------------
1、git是分布式的,SVN不是。

2、git把内容按元数据方式存储,而SVN是按文件。

3、git分支和SVN的分支不同。

4、git的内容完整性要优于SVN。

--------------------git原理分析--------------------
1、git主要分为
1、工作区:Workspace

2、暂存区:Index

3、本地仓库:Repository

4、远程仓库:Remote

2、部分操作
1、git add:工作区提交到暂存区。

2、git commit:暂存区提交到本地仓库。

3、git push:本地仓库提交到远程仓库。

4、git fetch:远程仓库提取到本地仓库。

5、git checkout:本地仓库提取到工作区。

6、git pull:远程仓库提取到工作区。

--------------------git常用命令--------------------
1、新建代码仓库
1、git init:在当前目录新建一个Git代码库。

2、git init [project-name]:新建一个目录,将其初始化为Git代码库。

3、git clone :下载一个项目和它的整个代码历史。

2、配置
1、Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

2、git config --list:显示当前的Git配置。

3、git config -e [--global]:编辑Git配置文件。

4、设置提交代码时的用户信息:
    1、git config [--global] user.name "[name]"

    2、git config [--global] user.email "[email address]"

3、增加/删除文件
1、git add [file1] [file2] ---:添加指定文件到缓存区。

2、git add [dir]:添加指定目录到暂存区,包括子目录。

3、git add:添加当前目录的所有文件到暂存区。

4、git rm [file1] [file2] ---:删除工作区文件,并且将这次删除放入暂存区。

5、git mv [file-original] [file-renamed]:改名文件,并且将这个改名放入暂存区。

4、代码提交
1、git commit -m [message]:提交暂存区到仓库区。

2、git commit [file1] [file2] --- -m [message]:提交暂存区的指定文件到仓库区。

3、git commit -a:提交工作区自上次commit,替代上一次提交。

4、git commit --amend -m [message]:使用一次新的commit,替代上一次提交。
    注:如果代码没有任何新变化,则用来改写上一次commit的提交信息。

5、git commit -amend [file1] [file2] ---:重做上一次commit,并包括指定文件的新变化。

5、分支
1、git branch:列出所有本地分支

2、git branch -r:列出所有远程分支

3、git branch -a:列出所有本地分支和远程分支

4、git branch [branch-name]:新建一个分支,但依然停留在当前分支

5、git checkout -b [branch]:新建一个分支,并切换到该分支

6、git branch [branch] [commit]:新建一个分支,指向指定commit

7、git push origin [branch]:新建一个远程分支,本地新建然后推送

8、git branch --track [branck] [remote-branch]:新建一个分支,与指定的远程分支建立追踪关系

9、git checkout [branch-name]:切换到指定分支,并更新工作区

10、git checkout -:切换到上一个分支

11、git branch --set-upstream-to [remote-branch]:建立追踪关系,设置当前分支与指定的远程分支之间关联

12、git merge [branch]:合并指定分支到当前分支

13、git cherry-pick [commit]:选择一个commit,合并进当前分支

14、git branch -d [branch-name]:
删除分支

15、删除远程分支
    1、git push origin --detele [branch-name]

    2、git branch -dr [remote/branch]

6、标签
1、git tag:列出所有tag。

2、git tag [tag]:新建一个tag在当前commit。

3、git tag [tag] [commit]:新建一个tag在指定commit。

4、git tag -d [tag]:删除本地tag。

5、git push origin :refs/tags/[tagName]:删除远程tag。

6、git show [tag]:查看tag信息。

7、git push [remote] [tag]:提交指定tag。

8、git push [remote] --tags:提交所有tag。

9、git checkout -b [branch] [tag]新建一个分支,指向某个tag。

7、查看信息
1、git status:显示有变更的文件。

2、git log:显示当前分支的版本历史。

3、git log --stat:显示commit历史,以及每次commit发送变更的文件。

4、git log -S [keyword]:搜索提交历史,根据关键词。

5、git log [tag] HEAD --pretty=format:%s:显示某个commit之后的所有变动,每个commit占据一行。

6、git log [tag] HEAD --grep feature:显示某个commit之后的所有变动,其“提交说明”必须符合搜索条件。

7、显示某个文件的版本历史,包括文件夹名
    1、git log --follow [file]

    2、git whatchanged [file]

8、git log -p [file]:显示指定文件相关的每一次diff。

9、git log -5 --pretty --oneline:显示过去5次提交。

10、git shortlog -sn:显示所有提交过的用户,按提交次数排序。

11、git blame [file]:显示指定文件是什么人在什么时间修改过

12、git diff:显示暂存区和工作区的差异。

13、git diff --cached [file]:显示暂存区和上一个commit的差异。

14、git diff HEAD:显示工作区与当前分支最新commit之间的差异。

15、git diff [first-branch] ...[second-branch]:显示两次提交之间的差异。

16、git show [commit]:显示某次提交的元数据和内容变化。

17、git show --name-only [commit]:显示某次提交发生变化的文件。

18、git show [commit]:[filename]:显示某次提交时,某个文件的内容。

19、git reflog:显示当前分支的最近几次提交

8、远程同步
1、git fetch [remote]:下载远程仓库的所有变动。

2、git remote -v:显示所有远程仓库。

3、git remote show [remote]:显示某个远程仓库的信息。

4、git remote add [shortname] [url]:增加一个新的远程仓库,并命名。

5、git push [remote] [branch]:上传本地指定分支到远程仓库。

6、git push [remote] --force:强行推送当前分支到远程仓库,即使有冲突。

7、git push [remote] --all:推送所有分支到远程仓库。

9、撤销
1、git checkout [file]:回复暂存区的指定文件到工作区。

2、git checkout [commit] [file]:恢复某个commit的指定文件到暂存区和工作区。

3、git checkout:恢复暂存区的所有文件到工作区。

4、git reset [file]:重置暂存区的指定文件,与上一次commit保持一致,但工作区不变。

5、git reset --hard:重置暂存区与工作区,与上一次commit保持一致。

6、重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变。

7、git reset --keep [commit]:重置当前HEAD为指定commit,但保持暂存区和工作区不变。

8、git revert [commit]:新建一个commit,用来撤销指定commit;后者的所有变化都将被前者抵消,并且应用到当前分支。

9、暂时将未提交的变化移除,稍后再移入:
    1、git stash

    2、git stash pop

10、其他
1、git archive:生成一个可供发布的压缩包

2、rm .git:删除项目的git管理

--------------------github操作说明--------------------
1、登录github注册对应的账号
[url=https://github.com]https://github.com

2、创建一个项目:
New repository

3、clone项目:
$ git clone https://(url)

4、第一次使用需配置用户名和邮箱:
$ git config --global user.name ""
$ git config --global user.email ""

5、测试操作
$ git add test.py
$ git commit -m "init test.py"
$ git push origin master
注:最后需要输入对应的账号和密码

6、ssh配置:
1、Settings --> SSH and GPG keys:可以为项目配置身份密钥,这样不必每次推送都输入账号和密码

2、ubuntu下生成当前电脑ssh秘钥

3、ssh -keygen
    1、id_rsa是私钥,自己保管好
    2、id_rsa.pub是公钥,上传至github

4、将公钥上传至github作为ssh keys

5、修改项目的配置文件ssh方式,编辑项目里的.git/config文件
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
    [remote "origin"]
        #url = https://github.com/(url)
        url = [email protected]:(url)
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
        remote = origin
        merge =refs/heads/master

--------------------GitHub简介--------------------
1、GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
2、GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery 等

原文地址:http://blog.51cto.com/13517854/2130666

时间: 2024-11-02 11:50:01

常用Git操作的相关文章

工作中常用Git指令操作

常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的文章也就呼之欲出,总结外加研究一些难啃的指令.Git工作流,后期会慢慢更新. 一.GIt的alias 1.先来说说自己比较喜欢用的简写指令,可根据个人自行配置,下图是本人自己工作常用的git简写: 2.像这样使用:  git st ---查看文件提交状态   git ci -m "提交信息说明&qu

git操作常用命令

一.使用git 1.git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个

git常用命令---操作本地仓库

命令中:<>表示可选填写    []表示选项必须填写   ()表示可以等价替换为()里内容 1.暂存相关命令(前三个命令最常用) git add [file]      提交某文件到暂存区([file]可以是文件名或目录名) git add -A   <path>       提交所有变化到暂存区,省略<path>表示.(即当前目录) git add  .         提交新文件和被修改文件(不包括被删除文件)到暂存区 git add -u  <path>

Git常用的操作指令

修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了.想要撤消刚才的提交操作,可以使用--amend 选项重新提交: 1 $ git commit --amend -m"修改 提交 说明" 此命令将使用当前的暂存区域快照提交.如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会 重新编辑提交说明,但将要提交的文件快照和之前的一样. 启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交. 如果

常用的Git操作

今天主要记录一下平常工作当中使用的git操作: 1.git的安装这里省略: 2.git的操作指令:        删除某一个文件:   rm -rf node,然后按下tab 查看分支: git branch -a 合并分支: git checkout -b 迭代  origin/迭代:    然后在切换分支: git branch -a: 从版本库拉取代码: git clone git地址 查看代码修改的内容: git status -s 查看修改文件的修改的详细信息:  git diff 文

常用Git命令汇总

常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代码用Git作版本控制.平时自己虽然天天使用Git,但是总感觉知识有些零散,于是汇总了一些常用的Git命令. 常用配置 --system #系统级别 --global #用户全局 --local #单独一个项目 git config --global user.name "xxxx" #用户

常用git命令

##GIT ###什么是gut - 是一个源代码管理工具- 在一个项目中,凡是由开发人员编写的都是源代码- 源代码有必要被管理起来吗- 让源代码可以被追溯,主要记录每次变了什么,谁主导这次变化- 人为的维护比较麻烦- GIT是Linux之父当年为了维护管理Linux源代码写的一个工具- GIT之前很多使用的svn vss tfs hs - https://guides.github.com/ ### 安装GIT - git命令行工具- 基于git命令行的一个客户端软件(提供一个界面去管理源代码)

常用git命令整理

花了一点时间来熟悉和整理git常用命令. 推荐的git学习资料:1.搜“Git Community Book 中文版.pdf”,git社区书,内容全面且简明扼要,第一推荐2.搜“Git权威指南.pdf”,国内一高人写的,非常细致深入,各种解释说明.不过,也太厚了点,可以作为文档查询3.ProGit,在这里读“http://git-scm.com/book/zh”,写得非常好,可选前面几章作为初学.但内容不足够我先扫了3的某几章,然后看1,基本足够.偶尔查询一下2. 感觉图形化的版本变迁图非常重要

常用Git命令及技巧总结

最近切换到git版本控制来维护代码,记录常用命令如下.另外,推荐git学习的书籍,<Pro Git>.另外,记录一些Git技巧. 1. 常用Git命令 初始化本地git仓库 git init 提交文件 git add *.c git add README git commit -m 'initial project version" 克隆远程仓库到本地 git clone git://github.com/schacon/grit.git git clone git://github