# git基本操作 **Repository Path**: blog_4/git_basic_operation ## Basic Information - **Project Name**: git基本操作 - **Description**: git基本操作 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-04-28 - **Last Updated**: 2020-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 安装Git ### GitHub提供了包含图形界面的桌面客户端,通过客户端可以完成大部分常用的仓库操作,同时可以自动更新Git的命令行版本,以适应新的场景。 GitHub for Windows http://windows.github.com GitHub for Mac http://mac.github.com ### GitHub的Linux和POSIX版本可以在官方的Git SCM网站上获取。 ### ### Git 全平台版 http://git-scm.com ### 配置工具 对所有本地仓库的用户信息进行配置 $ git config --global user.name "[name]" 对你的commit操作设置关联的用户名 $ git config --global user.email "[email address]" ### 对你的commit操作设置关联的邮箱地址 ### 创建仓库 ### 创建一个新的仓库或者从一个现有的链接获取仓库 $ git init [project-name] ### 创建一个本地的仓库,并设置名字 $ git clone [url] ### 下载一个项目以及它所有的版本历史 ### 更改 检查已有的编辑并执行commit操作 $ git status ### 列出所有新建或者更改的文件,这些文件需要被commit $ git diff ### 展示那些没有暂存文件的差异 $ git add [file] ### 将文件进行快照处理用于版本控制 $ git diff --staged ### 展示暂存文件与最新版本之间的不同 $ git reset [file] ### 将文件移除暂存区,但是保留其内容 $ git commit -m"[descriptive message]" ### 将文件快照永久地记录在版本历史中 ### 批量更改 命名一系列commit以及合并已完成的工作 $ git branch 列出当前仓库中所有的本地分支 $ git branch [branch-name] 建立一个新分支 $ git checkout [branch-name] 切换到一个特定的分支上并更新工作目录 $ git merge [branch-name] 合并特定分支的历史到当前分支 $ git branch -d [branch-name] 删除特定的分支 ### 重构文件 重定位并移除版本文件 $ git rm [file] 从工作目录中删除文件并暂存此删除 $ git rm --cached [file] 从版本控制中移除文件,并在本地保存文件 $ git mv [file-original] [file-renamed] 改变文件名并准备commit ### 停止追踪 ### 不包含临时文件和路径 *.log build/ temp-* 文本文件.gitignore可以防止一些特定的文件进入到版本控制中 $ git ls-files --others --ignored --exclude-standard ### 列出所有项目中忽略的文件 ### 保存临时更改 **暂存一些未完成的更改** $ git stash **临时存储所有修改的已跟踪文件** $ git stash pop **重新存储所有最近被stash的文件** $ git stash list **列出所有被stash的更改** $ git stash drop **放弃所有最近stash的更改** 查阅历史 **浏览并检查项目文件的发展** $ git log **列出当前分支的版本历史** $ git log --follow [file] **列出文件的版本历史,包括重命名** $ git diff [first-branch]...[second-branch] **展示两个不同分支之间的差异** $ git show [commit] **输出元数据以及特定commit的内容变化** ### 撤销commit **擦除错误并更改历史** $ git reset [commit] **撤销所有[commit]后的的commit,在本地保存更改** $ git reset --hard [commit] **放弃所有更改并回到某个特定的commit** ### 同步更改 **注册一个远程的链接,交换仓库的版本历史 ** $ git fetch [remote] **下载远程仓库的所有历史** $ git merge [remote]/[branch] **合并远程分支到当前本地分支** $ git push [remote] [branch] **上传所有本地分支commit到GitHub上** $ git pull 下载书签历史并合并更改 ========================================================================================================= 使用 Git Bash 第一次操作 1.在码云上创建空项目 2.Git Bash 中切换到本地项目目录下 3.$ git init 初始化项目本地库 4.关联码云空项目 $ git remote add origin git@gitee.com:路径 5.本地创建Readme.txt文件(记录改版本软件的信息,和操作方法) 6.本地创建.gitignore文件(忽略不需要上传的文件和目录) 7.$ git add . 8.$ git commit -m "备注" -a 9.$ git push -u origin master 修改操作 1.$ git add . 2.$ git commit -m "备注" -a 3.$ git push origin master 远程和本地冲突解决办法 1、把远程仓库master分支下载到本地并存为tmp分支 1 git fetch origin master:tmp 2、查看tmp分支与本地原有分支的不同 2 git diff tmp 这里主要是看看有没有其他的改动… 3、将tmp分支和本地的master分支合并 3 git merge tmp 这个时候呢,本地与远程就没有冲突了,而且还保留了我今天的代码,现在Push就OK啦! 4、最后别忘记删除tmp分支 4 git branch -d tmp 上传版本 $ git tag v1.0 $ git push origin v1.0 对比本地和远程的差别 获取整个远程库,但不合并 $ git fetch origin 对比本地master和远程origin/master的区别 $ git diff master origin/master 修改冲突 1.在合并两个分支的时候提示 Auto-merging readme.txt CONFLICT (content): Merge conflict in readme.txt Automatic merge failed; fix conflicts and then commit the result. 说明这个readme.txt这个文件冲突,合并失败 2.打开冲突文件进行手动修改 3.然后再一次进行提交 修改以后要记得提交,提交以后才能够合并或者上传到远程库 直接pull远程的数据 git pull origin master 如果开始不是在master分支的话切换到master分支就可以看到数据 $ git checkout master 查看分支:git branch 创建分支:git branch 切换分支:git checkout 创建+切换分支:git checkout -b 合并某分支到当前分支:git merge 删除分支:git branch -d ``` 这里输入代码 ```