开发过程中,会不断发现新需求,不断发现bug,这时候就需要一个好的软件来管理项目。Git提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。Git支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件。
安装Git:
点击下载Git, 安装成功后,在桌面上,可以看到安装后的“Git Bash”选项。
新建文件夹demo,进去之后右键单击选择菜单项Git Bash Here,弹出窗口即可操作。
生成秘钥:
在命令框中输入ssh-keygen -t rsa -C “yourEmail@*.com” 连续三次按enter键,出现The key fingerprint is:表示生成成功。
在C:\Users\Your\.ssh路劲下回看到id_rsa和id_rsa.pub,前一个文件是私钥,后一个是公钥,一般将公钥服务器进行认证。
下面按照功能介绍一些Git指令:
创建仓库:
git clone git://github.com/ 克隆远程仓库
git init 初始化本地仓库
全局配置:
git config -global user.name <name> 设置提交者的名字
git config -global user.email <email> 设置提交者邮箱
git config -global core.editor <editor> 设置默认文本编辑器
git config -global merge.tool <tool> 设置解决合并冲突时差异分析工具
git config -list 检查已有的配置信息
修改内容提交
git add . 添加所有改动过的文件
git add <file> 添加指定的文件
git mv <old> <new> 文件重命名
git rm <file> 删除文件
git rm -cached <file> 停止跟踪文件但不删除
git commit -m <file> 提交指定文件
git commit -m “commit message” 提交所有更新过的文件
git commit -amend 修改最后一次提交
git commit -C HEAD -a -amend 增补提交(不会产生新的提交历史纪录)
查看提交历史
git log 查看提交历史
git log -p <file> 查看指定文件的提交历史
git blame <file> 以列表方式查看指定文件的提交历史
gitk 查看当前分支历史纪录
gitk <branch> 查看某分支历史纪录
gitk --all 查看所有分支历史纪录
git branch -v 每个分支最后的提交
git status 查看当前状态
git diff 查看变更内容
撤消操作
git reset -hard HEAD 撤消工作目录中所有未提交文件的修改内容
git checkout HEAD
<file1> <file2> 撤消指定的未提交文件的修改内容
git checkout HEAD. 撤消所有文件
git revert
<commit> 撤消指定的提交
分支与标签
git branch 显示所有本地分支
git checkout
<branch/tagname> 切换到指定分支或标签
git branch
<new-branch> 创建新分支
git branch -d
<branch> 删除本地分支
git tag 列出所有本地标签
git tag <tagname> 基于最新提交创建标签
git tag -d
<tagname> 删除标签
合并与衍合
git merge <branch>
合并指定分支到当前分支
git rebase
<branch> 衍合指定分支到当前分支
远程操作
git remote -v 查看远程版本库信息
git remote show
<remote> 查看指定远程版本库信息
git remote add
<remote> <url> 添加远程版本库
git fetch <remote> 从远程库获取代码
git pull <remote>
<branch> 下载代码及快速合并
git push <remote>
<branch> 上传代码及快速合并
git push <remote>
: <branch>/<tagname> 删除远程分支或标签
git push -tags 上传所有标签
当你在与他人合作开发时,需要自己新建一个仓库可以如下操作:
git branch -b 'branch-name' 新建分支branch-name
git checkout -b 'branch-name' 新建分支并切换到新分支
git commit 提交修改内容
git push 提交到远程
git checkout 主分支 切换到主分支
git pull 更新主分支代码
git merge --no-ff 'branch-name' 合并自己分支到主分支
当两个人同时修改一个文件,无论是提交还是合并分支时候容易出现冲突,解决方法:
git stash 将自己修改的内容放在缓存区
git pull 更新别人提交的代码
git stash pop 将缓存区的代码释放
git status 查看文件状态,如果有提示文件冲突,打开对应的文件修改,然后 git add 文件
删除分支(删除分支前确定没有人在当前分支操作):
git branch -d 分支名 删除本地分支
git push origin --delete 分支名 删除远程仓库分支
当删除完分支时比人需要执行 git fetch origin 来更新最新分支
查看自己的修改:
git diff 提交之前查看
git show 提交之后查看
恢复被删除的文件:
git ls-files --deleted 查看被删除的文件
git checkout -- file-name 恢复文件
查看文件操作历史记录:
git log -p filename
注意: 每次提交自己的代码前都要git pull更新到最新的代码,以免冲突
git配置文件:
在命令行中输入 vi ~/.gitconfig 即可进入git配置文件,下面的配置主要是简化命令,添加(i,粘贴)到配置文件中保存退出(:wq)即可
[alias]
co = checkout
ci = commit
br = branch
st = status
unstage = reset HEAD --
last = log -1 HEAD
mg = merge --no-ff
glog = log --pretty=oneline --graph
df = difftool
sh = stash
pl = pull --rebase
ph = push
sp = stash pop
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
rv = revert --soft HEAD^
[color]
ui = true
[format]
pretty = oneline
git快捷键:
Insert:粘贴
ctrl+f: 查看下一页
ctrl+b: 查看上一页
i: 进入编辑模式
esc: 退出编辑模式
:wq 保存退出
q 退出阅读模式
小结:
git是一款功能强大的版本控制软件,通过它我们可以方便的管理自己的项目,下面是分享一些介绍git工作原理的网址:
git - 简明指南:http://rogerdudler.github.io/git-guide/index.zh.html
图解Git:http://marklodato.github.io/visual-git-guide/index-zh-cn.html