安装git : 在windows上,可以从Git官网直接下载安装程序,安装完成后,开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
创建版本库:
第一步:选择一个合适的地方,创建一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
第二步,通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
可以发现当前目录下多了一个.git
的目录,不要去修改,如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见。
也不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的。
添加文件到Git仓库,分两步:
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; - 使用命令
git commit -m <message>
,完成。
git status
命令可以让我们时刻掌握仓库当前的状态(文件有没有被修改过)
git diff
顾名思义就是查看difference,查看文件被修改的内容,例如$ git diff readme.txt
git log
命令显示从最近到最远的提交日志
$ git reset --hard HEAD^回退到上一个版本,
$ git reset --hard 1094a:回退到指定版本
要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本
工作区:就是你在电脑里能看到的目录,比如我的learngit
文件夹就是一个工作区:
版本库:工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库
暂存区:git add
命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit
就可以一次性把暂存区的所有修改提交到分支
撤销修改:
1.git checkout -- file
可以丢弃工作区的修改
2.命令git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage),重新放回工作区:然后按上一个命令丢弃工作区的修改
3.已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,$ git reset --hard HEAD^,不过前提是没有推送到远程库。
远程仓库:
第1步:创建SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com",你需要把邮件地址换成你自己的邮件地址,可以在用户主目录里找到
.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
点“Add Key”,你就应该看到已经添加的Key:
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
git clone 远程仓库地址:克隆代码
Git使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
遇到冲突,先解决冲突,再提交:
$ git add readme.txt
$ git commit -m "conflict fixed"
bug分支:
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。
多人协作:
-
查看远程库信息,使用
git remote -v
; -
本地新建的分支如果不推送到远程,对其他人就是不可见的;
-
从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交; -
在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致; -
建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
; -
从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突。
廖雪峰git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000