创建本地版本库
git init demo
将demo文件夹创建为版本库
如果是旧版本(1.6.5之前),不支持这种写法,需要进入demo文件夹,然后执行 git init 命令,就会将当前文件夹创建为版本库
版本库创建后会在该目录创建一个 .git 的隐藏文件
检出项目
git clone
将一个版本库从服务器down下来
举例:
git clone https://github.com/nbcoolkid/Spring.git
如果是本地的版本库
git clone ../GitServer/demo demo-step-1 说明:demo是版本库的工作区目录,demo-step-1是clone后的目录
查看项目
git status
查看当前本地文件在版本库中的状态
git log
查看提交日志
git diff
比较文件修改后差异
git --version
查看当前git版本
git rev-parse --git-dir
显示版本库 .git 所在目录
git rev-parse --show-toplevel
显示工作区根目录
对于git而言,是不区分工作目录与版本库目录的.
git reflog
查看最近操作
添加/删除文件纳入GIT版本控制
git add fileName
将新增的文件添加进版本库
git add -u
将所有修改过的文件加入暂存去
git add -A
将本地删除与新增都登记到暂存区
git rm fileName
将删除的文件添加进版本库
git rm --cached fileName
忽略文件,同时需要配置到.gitignore文件中
提交更新
git commit
将添加进版本库的文件提交
git commit -m "提交说明信息" 如果这里不使用 -m 参数进行提交说明,也会有提示让我们输入提交信息
提交到服务器
git push
将本地修改提交到远程版本库
需要根据提示输入用户名密码
冲突
冲突的产生:两个用户从版本库clone一份代码后,经过修改,A用户提交了,然后B用户也提交,并且他们修改了同一个文件,就会产生冲突。
因为GIT不知道这个文件应该使用A还是B
解决思路:B在提交前,先合并A的提交,然后再向服务器提交
git pull 合并冲突
自动合并有可能会失败,此时就需要我们收到打开文件进行修改更新
git add fileName
git commit -m "message"
git push
环境变量
git config core.quotepath false
设置环境变量,解决中文文件名在这些git命令输出中的显示乱码问题
sudo git config --system alias.st status
为git命令设置简单的别名,经过上述设置后,git st就相当于git status 所有用户都有效
sudo git config --system alias.commit ci
git config -global alias.st status
作用与上一条一样,仅配置本用户的全局属性.也就是仅针对当前用户有效
git config --global color.ui true
在git命令输出中开启颜色显示
git config -e
编辑当前版本库的配置信息
相当于编辑 .git/config 文件
git config -e --global
编辑当前用户全局配置文件
相当于编辑 ~/.gitconfig
git config -e --system
编辑系统全局配置文件
相当于编辑 /etc/gitconfig
回到过去
git reset --hard commitId 这里的hard是版本库的一个commit指针
回到未来
当使用git reset --hard回退到某个版本后,如果想要返回原先的版本,首先使用git reflog命令查看操作
找到commitId后,还是使用git reset --hard commitId回到未来
里程碑
概念:软件的一个版本号
创建里程碑:
在github中,打开项目,点击releases,按照提示填写里程碑信息
填写完成后,提交,就将这个版本发布出去了。
分支
分支开发:
在Windows上的图形操作:点击master右边的倒三角创建一个分支 三角->manage->加号->输入分支名 ;切换到新的分支上
然后就可以在新的分支上修改提交了
分支合并:
在Windows上的图形操作:进入版本管理的分支窗口(三角->manage->加号->输入分支名)
将分支移动到Merge的左侧,主干分支移动到Merge的右侧,点击Merge
另一种合并分支的方式:
在GitHub中,如果本地做了一个分支并且提交更新,在GitHub网站上,就会提醒我们 要不要合并分支。一般开源软件会采用这种方式进行分支的合并