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) 编辑 收藏 举报