git常用命令

一、git 常用命令

git config --global user.name "username"  # 初始化设置姓名
git config --global user.email "email" # 设置邮箱
     
git init                 #初始化
git remote add origin git://test.com/test.git #建立远程仓库
git status               #查看修改的文件
git add .                #添加当前目录下的所有文件和子目录暂存区
git add dir_name         #添加dir1这个目录,目录下的所有文件都被加入暂存区
git add file1 file2      #添加file1,file2文件到暂存区
git commit -m "注释"      #提交暂存区内容到本地版本库中
git commit -a -m "注释"   #除了将暂存区里的文件提交外,还提交 Changes bu not updated 中的文件
git push origin test     #把分支推到远程分支
git diff file1           # 对比file1文件跟版本库中有什么不同
git clone git@git.9e.com.git #克隆git分支到本地,默认为master
git clone -b develop git@git.9e.com.git #克隆git的develop分支到本地


git rm --cached "文件路径" # 不删除物理文件,仅将该文件从缓存中删除;
git rm --f "文件路径" # 不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。
git ls-files -d | xargs -i git checkout {} # 恢复被删除的文件
git log --branches="develop" # 查看某分支的修改记录
git log --since="2 weeks ago" -- myfile  # 查看某文件历史修改记录

二、git分支


git branch test       #创建本地分支
git checkout test     #切换本地分支到test
git checkout -b dev   #创建并切换到dev分支
git checkout -t origin/develop #使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支:
git checkout -b develop origin/develop #远程分支develop推送到本地并切换至该分支
git checkout develop — <file name>  # 合并develop分支下的文件到当前分支
git branch -d test    #删除本地的test分支
git push origin :test #删除远程的test分支        
git remote -v         #查看远程分支详细信息            
git branch -a         #查看本地和远程分支
git branch -r         #查看远程分支
git branch            #查看本地当前分支 
git merge dev         #命令用于合并指定分支到当前分支
git branch -m <old_branch_name> <new_branch_name> #重命名本地分支
git branch -M <old_branch_name> <new_branch_name> #强制重命名分支,同名覆盖
git checkout [branch] -- [file name] #从其它分支提取文件



二、git 撤销操作

(1)如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend 提交:

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

(2)有两个修改过的文件,我们想要分开提交,但不小心用 git add . 全加到了暂存区域。该如何撤消暂存其中的一个文件呢?

 其实,git status 的命令输出已经告诉了我们该怎么做:

$ git add .
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
           
        modified:   README.txt
        modified:   benchmarks.rb

就在 “Changes to be committed” 下面,括号中有提示,可以使用 git reset HEAD <file>... 的方式取消暂存。好吧,我们来试试取消暂存 benchmarks.rb 文件:

$ git reset HEAD benchmarks.rb
Unstaged changes after reset:
M       benchmarks.rb
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
           
        modified:   README.txt
           
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
           
        modified:   benchmarks.rb

(3)如果觉得刚才对 benchmarks.rb 的修改完全没有必要,该如何取消修改,回到之前的状态(也就是修改之前的版本)呢?

 git status 同样提示了具体的撤消方法,接着上面的例子,现在未暂存区域看起来像这样:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
           
        modified:   benchmarks.rb

在第二个括号中,我们看到了抛弃文件修改的命令 git checkout -- <file>(至少在 Git 1.6.1 以及更高版本中会这样提示,如果你还在用老版本,我们强烈建议你升级,以获取最佳的用户体验),让我们试试看:

$ git checkout -- benchmarks.rb
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
           
        modified:   README.txt

三、相关文档

(1)手册:http://www.git-scm.com/book/zh/v1

(2)Git 基础 - 查看提交历史

(3)git查看两个分支间不同文件列表并打包

(4)git查看两个分支间不同文件列表

(5)linux安装git

(6)git撤销

by 雪洁 2014-10-16 07:47:32 1817 views
我来说几句

相关文章