Git 操作命令

来源:互联网 发布:源码分享是什么意思 编辑:程序博客网 时间:2024/04/30 09:58

Git安装程序下载:

https://git-scm.com/download


git revert

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销

作为一次最新的提交
    * git revert HEAD                  撤销前一次 commit
    * git revert HEAD^               撤销前前一次 commit
    * git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。

git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,

版本会递增,不影响之前提交的内容

git checkout <branch name>//switch to the certain branch based on branch name

git branch -D <branch name>//delete the local git branch

git rebase <branch name>//pull the latest changes from certain branch to the current branch

git checkout -b <branch name> <remote branch name>//create a new local branch name based on the certain remote branch name//for example git checkout -b Story_123456 origin/genesis

git pull//pull all the remote branch list into local remote tracking list  


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

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 常用命令图表 


图片转自:http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.html

本文转自:http://hi.baidu.com/sunboy_2050/item/ffab7396672895d11a49dfcc

建议参考文献:

Git 命令参数及用法详解

Windows环境中使用版本管理工具Git

GitRef


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

初始化配置

C代码  收藏代码
  1. #配置使用git仓库的人员姓名  
  2. git config --global user.name "Your Name Comes Here"  
  3.   
  4. #配置使用git仓库的人员email  
  5. git config --global user.email you@yourdomain.example.com  
  6.   
  7. #配置到缓存 默认15分钟  
  8. git config --global credential.helper cache   
  9.   
  10. #修改缓存时间  
  11. git config --global credential.helper 'cache --timeout=3600'    
  12.   
  13. git config --global color.ui true  
  14. git config --global alias.co checkout  
  15. git config --global alias.ci commit  
  16. git config --global alias.st status  
  17. git config --global alias.br branch  
  18. git config --global core.editor "mate -w"    # 设置Editor使用textmate  
  19. git config -1 #列举所有配置  
  20.   
  21. #用户的git配置文件~/.gitconfig  
  

查看、添加、提交、删除、找回,重置修改文件

C代码  收藏代码
  1. git help <command>  # 显示command的help  
  2. git show            # 显示某次提交的内容  
  3. git show $id  
  4.    
  5. git co  -- <file>   # 抛弃工作区修改  
  6. git co  .           # 抛弃工作区修改  
  7.    
  8. git add <file>      # 将工作文件修改提交到本地暂存区  
  9. git add .           # 将所有修改过的工作文件提交暂存区  
  10.    
  11. git rm <file>       # 从版本库中删除文件  
  12. git rm <file> --cached  # 从版本库中删除文件,但不删除文件  
  13.    
  14. git reset <file>    # 从暂存区恢复到工作文件  
  15. git reset -- .      # 从暂存区恢复到工作文件  
  16. git reset --hard    # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改  
  17.    
  18. git ci <file>  
  19. git ci .  
  20. git ci -a           # 将git add, git rm和git ci等操作都合并在一起做  
  21. git ci -am "some comments"  
  22. git ci --amend      # 修改最后一次提交记录  
  23.    
  24. git revert <$id>    # 恢复某次提交的状态,恢复动作本身也创建了一次提交对象  
  25. git revert HEAD     # 恢复最后一次提交的状态  
 

查看文件diff

C代码  收藏代码
  1. git diff <file>     # 比较当前文件和暂存区文件差异  
  2. git diff  
  3. git diff <$id1> <$id2>   # 比较两次提交之间的差异  
  4. git diff <branch1>..<branch2> # 在两个分支之间比较  
  5. git diff --staged   # 比较暂存区和版本库差异  
  6. git diff --cached   # 比较暂存区和版本库差异  
  7. git diff --stat     # 仅仅比较统计信息  
  

查看提交记录

C代码  收藏代码
  1. git log  
  2. git log <file>      # 查看该文件每次提交记录  
  3. git log -p <file>   # 查看每次详细修改内容的diff  
  4. git log -p -2       # 查看最近两次详细修改内容的diff  
  5. git log --stat      #查看提交统计信息  
 

 tig

Mac上可以使用tig代替diff和log,brew install tig

 

取得Git仓库

C代码  收藏代码
  1. #初始化一个版本仓库  
  2. git init  
  3.   
  4. #Clone远程版本库  
  5. git clone git@xbc.me:wordpress.git  
  6.   
  7. #添加远程版本库origin,语法为 git remote add [shortname] [url]  
  8. git remote add origin git@xbc.me:wordpress.git  
  9.   
  10. #查看远程仓库  
  11. git remote -v  

 

提交你的修改

C代码  收藏代码
  1. #添加当前修改的文件到暂存区  
  2. git add .  
  3.   
  4. #如果你自动追踪文件,包括你已经手动删除的,状态为Deleted的文件  
  5. git add -u  
  6.   
  7. #提交你的修改  
  8. git commit –m "你的注释"  
  9.   
  10. #推送你的更新到远程服务器,语法为 git push [远程名] [本地分支]:[远程分支]  
  11. git push origin master  
  12.   
  13. #查看文件状态  
  14. git status  
  15.   
  16. #跟踪新文件  
  17. git add readme.txt  
  18.   
  19. #从当前跟踪列表移除文件,并完全删除  
  20. git rm readme.txt  
  21.   
  22. #仅在暂存区删除,保留文件在当前目录,不再跟踪  
  23. git rm –cached readme.txt  
  24.   
  25. #重命名文件  
  26. git mv reademe.txt readme  
  27.   
  28. #查看提交的历史记录  
  29. git log  
  30.   
  31. #修改最后一次提交注释的,利用–amend参数  
  32. git commit --amend  
  33.   
  34. #忘记提交某些修改,下面的三条命令只会得到一个提交。  
  35. git commit –m &quot;add readme.txt&quot;  
  36. git add readme_forgotten  
  37. git commit –amend  
  38.   
  39. #假设你已经使用git add .,将修改过的文件a、b加到暂存区  
  40.   
  41. #现在你只想提交a文件,不想提交b文件,应该这样  
  42. git reset HEAD b  
  43.   
  44. #取消对文件的修改  
  45. git checkout –- readme.txt  
 

查看、切换、创建和删除分支

C代码  收藏代码
  1. git br -r           # 查看远程分支  
  2. git br <new_branch> # 创建新的分支  
  3. git br -v           # 查看各个分支最后提交信息  
  4. git br --merged     # 查看已经被合并到当前分支的分支  
  5. git br --no-merged  # 查看尚未被合并到当前分支的分支  
  6.    
  7. git co <branch>     # 切换到某个分支  
  8. git co -b <new_branch> # 创建新的分支,并且切换过去  
  9. git co -b <new_branch> <branch>  # 基于branch创建新的new_branch  
  10.    
  11. git co $id          # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除  
  12. git co $id -b <new_branch>  # 把某次历史提交记录checkout出来,创建成一个分支  
  13.    
  14. git br -d <branch>  # 删除某个分支  
  15. git br -D <branch>  # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)  

删除远程分支和tag

在Git v1.7.0 之后,可以使用这种语法删除远程分支:

$ git push origin --delete <branchName>

删除tag这么用:

git push origin --delete tag <tagname>

分支合并和rebase

C代码  收藏代码
  1. git merge <branch>               # 将branch分支合并到当前分支  
  2. git merge origin/master --no-ff  # 不要Fast-Foward合并,这样可以生成merge提交  
  3.    
  4. git rebase master <branch>       # 将master rebase到branch,相当于:  
  5. git co <branch> && git rebase master && git co master && git merge <branch>  
 

Git补丁管理(方便在多台机器上开发同步时用)

C代码  收藏代码
  1. git diff > ../sync.patch         # 生成补丁  
  2. git apply ../sync.patch          # 打补丁  
  3. git apply --check ../sync.patch  #测试补丁能否成功  
 

Git暂存管理

C代码  收藏代码
  1. git stash                        # 暂存  
  2. git stash list                   # 列所有stash  
  3. git stash apply                  # 恢复暂存的内容  
  4. git stash drop                   # 删除暂存区  
 

Git远程分支管理

C代码  收藏代码
  1. git pull                         # 抓取远程仓库所有分支更新并合并到本地  
  2. git pull --no-ff                 # 抓取远程仓库所有分支更新并合并到本地,不要快进合并  
  3. git fetch origin                 # 抓取远程仓库更新  
  4. git merge origin/master          # 将远程主分支合并到本地当前分支  
  5. git co --track origin/branch     # 跟踪某个远程分支创建相应的本地分支  
  6. git co -b <local_branch> origin/<remote_branch>  # 基于远程分支创建本地分支,功能同上  
  7.    
  8. git push                         # push所有分支  
  9. git push origin master           # 将本地主分支推到远程主分支  
  10. git push -u origin master        # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)  
  11. git push origin <local_branch>   # 创建远程分支, origin是远程仓库名  
  12. git push origin <local_branch>:<remote_branch>  # 创建远程分支  
  13. git push origin :<remote_branch>  #先删除本地分支(git br -d <branch>),然后再push删除远程分支  
 

基本的分支管理

C代码  收藏代码
  1. #创建一个分支  
  2. git branch iss53  
  3.   
  4. #切换工作目录到iss53  
  5. git chekcout iss53  
  6.   
  7. #将上面的命令合在一起,创建iss53分支并切换到iss53  
  8. git chekcout –b iss53  
  9.   
  10. #合并iss53分支,当前工作目录为master  
  11. git merge iss53  
  12.   
  13. #合并完成后,没有出现冲突,删除iss53分支  
  14. git branch –d iss53  
  15.   
  16. #拉去远程仓库的数据,语法为 git fetch [remote-name]  
  17. git fetch  
  18.   
  19. #fetch 会拉去最新的远程仓库数据,但不会自动到当前目录下,要自动合并  
  20. git pull  
  21.   
  22. #查看远程仓库的信息  
  23. git remote show origin  
  24.   
  25. #建立本地的dev分支追踪远程仓库的develop分支  
  26. git checkout –b dev origin/develop  
 

Git远程仓库管理

C代码  收藏代码
  1. git remote -v                    # 查看远程服务器地址和仓库名称  
  2. git remote show origin           # 查看远程服务器仓库状态  
  3. git remote add origin git@ github:robbin/robbin_site.git         # 添加远程仓库地址  
  4. git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址)  
  5. git remote rm <repository>       # 删除远程仓库  
 

创建远程仓库

C代码  收藏代码
  1. git clone --bare robbin_site robbin_site.git  # 用带版本的项目创建纯版本仓库  
  2. scp -r my_project.git git@ git.csdn.net:~      # 将纯仓库上传到服务器上  
  3.    
  4. mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库  
  5. git remote add origin git@ github.com:robbin/robbin_site.git    # 设置远程仓库地址  
  6. git push -u origin master                                      # 客户端首次提交  
  7. git push -u origin develop  # 首次将本地develop分支提交到远程develop分支,并且track  
  8.    
  9. git remote set-head origin master   # 设置远程仓库的HEAD指向master分支  
 
也可以命令设置跟踪远程库和本地库
C代码  收藏代码
  1. git branch --set-upstream master origin/master  
  2. git branch --set-upstream develop origin/develop  
 
git reset --hard <commit unique hashcode>//hard rest the current branch to the certain commit time point
git merge --no-ff Story_XXXXX//merge the Story_XXXXX branch into the current branch with log information
git cherry-pick <commit unique hashcode>//merge the certain commit based on hash value into the current branch

参考资料

远程仓库的使用

何谓分支

基本的分支与合并

分支的管理

分支式工作流程

远程分支

衍合

 

参考1: http://www.xbc.me/git-commands/

参考2: http://neverno.me/hello-world/git-commands-github.html

 

在线中文图书: 1. Git Magic  2. Pro Git        

 


0 0
原创粉丝点击