1、git init
通过git init命令把这个目录变成Git可以管理的仓库
2、在git 同目录下加入文件
git add readme.txt 将此文件加入即将提交的列表中
git commit -m 'comment' 提交修改.-m制定备注
3、git status
查看目前git repository 状态,如果有修改的文件会在此处提醒
4、git diff
对比文件与上一个文件的版本
5、git log
查看提交记录,提交日志
--pretty=oneline 简略信息查看
6、git reset --hard HEAD^
回退到上一个版本
git reset --hard 3628164 后边这个数字是版本的hash值的前几位。得到这个值就可以将git的HEAD指针指向那个版本,所以,需要得到这个commit id
7、git reflog
回退以后如何回到未来,使用此命令查找执行过的HEAD位置移动的命令,查找到commit id的前几位,然后用 git reset --hard + commit id 即可回到未来
8、工作区和暂存区的概念
工作区是目前做任何修改的地区
暂存区是将上一版本和这一版本对比以后,然后将修改过的文件git add 到暂存区
9、git是字符级别的提交。先修改一次文件,然后add ,然后在修改一次文件,然后再commit,则第二次修改未被commit上去
10、git diff HEAD -- readme.txt
查看工作区和版本库里边最新版本的区别
11、git checkout -- readme.txt
让这个文件回到最近一次git commit或git add时的状态。-- 很重要,没有这两 - 就是回到另外一个分支了
12、git reset HEAD file
将add 到暂存区的文件撤销,然后在用get checkout -- file 这样整个世界就清静了
13、git rm
删除文件以后,从版本库中,确认这个文件确实不要了以后,直接git rm 然后git commit
如果git rm 一个文件后,得先git reset HEAD filename 后,再git checkout -- filename 就把删除的文件找到工作区了
14、git push -u origin master
把当前分支推送到远程.
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
15、git push origin master
从现在起,只要本地作了提交,就可以通过此命令把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
16、git clone git@github.com:wyn199303/gitskills.git
从github一个版本库中克隆一个
17、git checkout -b dev
切换到一个新的分支 -b 表示创建并切换,相当于
git branch dev
git checkout dev
18、git branch 查看分支,当前分支有一个*号
19、git merge dev
合并指定分支到当前分支,合并完以后就可以放心的删除dev分支了
20、git branch -d dev
删除dev分支
21、git log --graph
可以看到分支合并图
22、merge的时候如果两个分支发生冲突了,那么直接打开那个文件进行手动修改,然后直接git add && git commit 即可
23、通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
24、git merge --no-ff -m "merge with no-ff" dev
使用 --no-ff模式进行merge,并且进行一个commit 这样merge就会产生一个commit id,使用git log就可以看到此次merge了
25、master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活
26、dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
27、git status 将现场存储起来,以后恢复后继续工作
git status 以后切换到需要修改的分支,然后再创建一个临时分支并切换过去,然后修改文件,然后提交修改,然后再切换到需要修改的那个分支,然后在merge git merge --no-ff -m "merged bug fix 101" issue-101
28、git stash list 可以查看创建的stash
git stash apply stash@{0} 可以恢复某个stash,但是不删除这个stash信息
git stash pop stash@{0} 可以恢复并删除某个stash
29、git branch -D feature-vulcan 当feature-vulcan分支作业完成后,切换回dev分支进行合并,打算又不需要这个分支的功能,则需要用到这个命令执行快速删除。
30、查看远程库信息,使用git remote -v;
31、本地新建的分支如果不推送到远程,对其他人就是不可见的;
32、从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
33、在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
34、建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
35、从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
网友评论