1)下载安装git
2)配置git信息
git config --global user.name "XXXXX"
git config --global user.email "XXXXX"
查看当前用户配置信息: git config --global --list
3) git的工作流程一般是
a:)在工作目录中添加,修改文件
b:)将需要进行版本管理的文件放入暂存区域
git add "文件名" / git add . 添加所有修改
c:)将暂存区的文件提交到git仓库
git commit -m “备注信息”
工作区 - 暂存区 - 仓库
如果你在工作区添加了新文件,就要使用 git add . [将所有新增文件加入跟踪状态]
然后使用 git commit -m "备注",否则commit 不了
直接git commit -am "备注" 也不行,对于新添加的文件,必须先git add .
如果你修改了已经被跟踪的文件,要先使用 git add .
在使用git commit -m "备注",否则commit 不了
当然可以直接使用 git commit -am "备注"
因此在实际项目开发中,总是有修改文件,和添加文件同时存在,因此可以使用
git add .
git commit -m "备注" 【或者 git commit -am "备注"】
4)常见命令
git status 查看当前文件状态
git reset HEAD 可以将上次add 的文件恢复到add 前
git checkout . 丢弃所有更改
git checkout -- 文件名 丢弃指定文件
git log 查看提交记录
5)回到过去
如果发现提交文件有错误,可以使用git reset HEAD~ 来进行回退暂存区的文件内容【只是针对提交的文件】
1)git [mixed] reset HEAD~2: 回退2步 n回退n步
移动HEAD指向,将其指向上一个快照
将HEAD移动后指向的快照回滚到暂存区域
demo:
在一个文件中我们分别修改三次,也add ,commit 了三次
然后使用 git reset HEAD~ 这个时候,我们的暂存区的文件是恢复到了第二次提交后的状态,但是本地的文件还是最终的那个版本
本地文件待添加至“暂存区”
2)git reset --soft HEAD~ 【相当于撤销上一步的commit】
移动HEAD 指向,将其指向上一个快照【本地文件已经被提交至暂存区】
3)git reset --hard HEAD~
移动HEAD指向,将其指向上一个快照
将HEAD移动后指向的快照回滚到暂存区域
将暂存区文件还原到工作目录【即修改了本地文件,丢弃了你修改的最新文件】
4)回滚个别文件
git reset 文件名/路径 但是不会改变指针
5)想前滚
有可能在在项目操作的时候使用了git reset --hard HEAD~ 造成文件丢失,但是我们可以使用git reset --hard 版本快照
6)删除文件
删除工作区,以及暂存区文件
git rm file.name
删除暂存区,保留工作区:
git rm --cached file.name
强制删除: git rm -f filename
如果一个文件被错误的commit 到至缓存区
git rm fileName
git reset soft --HEAD~
7)重命名
git mv oldFilename newFileName
8)有时候进行rebase 操作的的时候回发生冲突,这个时候会使用git rebase --skip 会发生文件丢失的问题
1.找回丢失的commit,几下那个commit id xxxx git reflog 2.创建一个分支 git checkout -b recovery xxxxx
9)其他的补充
查看本地分支:git branch
看所有分支:git branch -a
创建分支: git branch 分支名字
切换分支: git checkout 分支名字
git checkout -b feature
合并分支: git merge 分支名字 【将分支合并当前分支】
删除本地分支:git branch -d 分支名字
删除远程分支: git push origin --delete 名字
git add 的几种参数区别
保存所有的修改: git add -A
保存新的添加和修改,但是不包括删除 :git add .
保存修改和删除,但是不包括新建文件:git add -u
10)常规操作
1)服务器拉去代码 git clone "地址" 2)创建本地分支并且关联远程分支release git checkout release 3) 更新本地代码,拉去release git pull --ff 4) 创建本地分支,并切换到feature git checkout -b feature git checkout feature 5) 提交本地代码至feature分支 git commit -a -m "XXXX" 6) 切换至develop 获取代码,并且返回feature(避免develop 分支上的冲突) git checkout release git pull --ff git checkout feature 7) 合并分支 git rebase release 8) 切换至develop 合并分支 git checkout release git merge --no-ff feature 9)提交代码 git push 遇到冲突: 手动解决,然后 git commit -a -m "deal conficlt" git rebase --continue ----apply '.....'表示合并成功----- git rebase --skip git rebase develop git checkout develop git merge --no-ff feature git config core.ignorecase false关闭git忽略大小写配置,即可检测到大小写名称更改