git 常用命令

python常用命令

  1 #配置git
  2 git config --global user.name "K-John"
  3 git config --global user.email "19941222hb@gmail.com"
  4 
  5 #初始化 git workspace(就是你当前所在的目录)
  6 git init
  7 
  8 #将当前工作区的文件加到暂存区,实际上是将文件的改动加到暂存区
  9 git add README
 10 
 11 #将暂存区的内容添加到当前分支所对应的分支的版本库中(git的仓库)
 12 git commit -m "desriptions"
 13 
 14 #查看仓库当前的状态
 15 git status
 16 
 17 #修改某一文件,但是没有添加到缓冲区,此时可以用git diff 查看修改前和未修改前的区别
 18 git diff README
 19 git diff HEAD -- README #查看版本库中最新版本文件与工作区文件的区别
 20 
 21 #查看每一次commit的详情
 22 git log [--pretty=oneline]
 23 
 24 #回退到上一次commit
 25 git reset  --hard HEAD^
 26 #回退到上上一次commit(没回退一次相应的commit详情都会自动消失)
 27 #HEAD 相当于一个指针,总是指向当前的分支的指针(分支名代表一个分支的指针),而当前分支指针指向commit,(HEAD-->分支指针--->commit) 改变HEAD就相当于改变>    分支指针 所指向的commit,这样就可以在不同commit之间切换,每次提交分支指针都会向前移动一步
 28 git reset --hard HEAD^^
 29 
 30 #查看当前每一次对commit的操作,用于回到未来某一版本时查看commit id
 31 git reflog
 32 #回退到历史版本,又想要回到未来某一版本
 33 git  reset --hard 3628164(这一串数字为commit id的前几位数字,这样就不用将整个commit id写出来,通过git reflog查看未来的commit id)
 34 
 35 #撤销工作区内对文件的修改(前提是在你没有将文件添加到暂存区)
 36 git checkout -- README
 37#撤销暂存区的修改,并重新将修改放回工作区
 39 git reset HEAD  README
 40 
 41 #从版本库中删除某一文件
 42 git rm LICENSE
 43 git commit -m "deleted LICENSE"
 44 
 45 #从版本库中恢复已经删除的文件,只需要回到以前的版本
 46 #创建ssh key
 47 ssh-keygen -t rsa -C "19941222hb@gmail.com"
 48 
 49 #将本地仓库关联到github的远程仓库(前提是已经将你电脑的ssh key添加到github的SSH key列表)
 50 git remote add origin git@github.com:free-free/algorithm.git   #origin 为远程仓库的叫法(只是为了方面操作),也可以自己取名;free-free为github账号名;a    lgorithm为你想要关 联的仓库,必须现在现在github上创建
 51 
 52 #将本地版本库推送到远程github库
 53 git push -u origin master # -u 参数 Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来 
 54 
 55 #推送非主分支到到远程库,github会自动建立一个dev分支与你本地的dev分支对应
 56 git push origin dev
 57 
 58 #将远程的仓库克隆到本地
 59 git clone git@github.com:free/algorithm.git
 60 
 61 #git创建一个分支只需要重新创建一个分支指针,并且将该分支指针指向创建时所对应的commit,分支间切换就只需要让HEAD指向另一分支指针,分支切换后对文件的修>    改就指向该分支了
 62 
 63 #创建分支,并且切换到分支
 64 git checkout -b dev #相当于 git branch dev git checkout dev
 65 
 66 #切换到指定分支
 67 git checkout dev
 68 
 69 #查看分支数
 70 git branch
 71 
 70#创建新分支
 73 
 74 git branch dev
 75 
 76 #删除分支
 77 git branch -d dev
 78 
 79 #强制删除一个没有合并的分支
 80 git branch -D dev
 81 #合并指定分支到当前分支(假设当前出master分支,则下面指令将dev分支合并到master分支)
 82 git merge dev #需要自己解决合并冲突
 83 
 84 
 85 #合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个
    新的commit,这样,从分支历史上就可以看出分支信息。--no-ff(禁用Fast forward mode)方式的git merge
 86 
 87 git merge --no-ff -m "merge dev into master"  dev
 88 
 89 #假设你在dev分支上工作,突然需要跳到bug分支去修复bug,但是你当前的工作区的工作还没#完成,但是你又不想要提交修改,这是你可以通过以前命令将当前工作保存>    起来,然后切换到其他bug分支去修复bug,
 90 git stash
 91 
 92 #当你把bug修复完之后,切换到刚才工作的分支,这是可以通过命令去恢复刚才没有提交的工作区
 93 
 94 git stash list #查看所有的stash
 95 git stash apply #恢复刚才未提交的工作, 但是没有将stash删除,这是需要通过以下命令将stash 的内容删除
 96 git stash drop
 97 
 98 git stash pop #恢复stash的内容,并且删除stash的内容,相当于git stash apply,git stash drop
 99 
100 #查看远程库的信息
101 git remote
102 git remote -v #更详细
103 
104 #新建分支并将远程仓库某一个分支克隆到当前分支
105 git checkout -b dev origin/dev
106 
107 #当远程仓库最新的提交与试图推送的提交有矛盾的时候,用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,commit 之后,再推送
108 
109 git pull
110 
111 #如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用以下命令解决
112 
113 git branch --set-upstream branch-name orgin/branch-name
114 
115 #为当前的版本打一个标签(标签其实也是一个指向commit指针,但是它不能改变),默认是为最新的commit打标签
116 git tag v1.0
117 git tag v1.1  6224937(commit id) #为某一次commit打标签
118 git tag -a v1.2 -m 'version 1.2 released' 3628164 #创建带说明的标签
119 #查看所有标签(标签不是按时间顺序列出而是按字母顺序列出)
120 git tag
121 
122 #显示某一标签对应的详细信息
123 git show v1.0
124 
125 #删除某一标签
126 
127 git tag -d v1.0
128 
129 #推送某个标签到远程仓库
130 git push origin v1.0
131 
132 #一次性推送全部尚未推送远程的本地标签
133 git push origin --tags
134 
135 #删除远程的标签
136 
137 git push origin :refs/tags/v0.9

posted on 2015-12-21 23:24  yeah,youcandoit  阅读(204)  评论(0编辑  收藏  举报

导航