使用Git版本控制器差很少有一年多的时间了,在这一年多的时间里对这个传说的的分布式版本控制工具备了必定的了解。在实战项目开发中,对关于如何在经过Git提交项目,以及如何使用Git命令对提交的文件进行撤销,回退/还原,删除等相关操做有了必定的了解。如下主要是我在工做,学习中对本身使用Git的一些总结。git
参考博客地址(该篇博客解释的很是详情,你们能够对照着进行安装):github
未跟踪(untrack):未追踪,表示文件为新增长的安全
已修改(modified):表示修改了文件,但还没保存到git仓库中服务器
已暂存(staged):表示修改的文件提交到了暂存区,可是尚未提交到本地Git版本库分布式
已提交(committed):表示数据安全提交到了本地Git版本库工具
Working Directory(工做目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内学习
Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内fetch
Repository(本地仓库):提交到本地仓库的文件spa
Repository(远程仓库):已提交到远程计算机内的文件
提交流程为:工做区》暂存区》本地版本库》远程版本库
在Git Bash Here的控制台里输入:
git config --global user.name "你的名称" git config --global user.email "你的邮箱" 切换完成后,查看对应的帐号: git config user.name 输出帐号名称:YSGStudyHards
详情参考博客:https://blog.csdn.net/qq_36602939/article/details/79794686
git remote -v
//查看用户名 git config user.name //查看邮箱地址 git config user.email
git clone
注意:提交代码以前,需先从服务器上面拉取代码,以防覆盖别人代码!
git pull
git status
git add + 文件 git add -u + 路径:将修改过的被跟踪代码提交缓存 git add -A + 路径: 将修改过的未被跟踪的代码提交至缓存
git commit -m “功能修改,这里是注释”
git push origin master
解决办法:利用 git reset 命令将撤回缓存中的代码。
解决办法:
git reset —soft + 版本号
回退到某个版本,只回退了commit的信息,不会改变已经修改过的代码。
git reset —hard + 版本号
完全回退到某个版本,本地的代码也会改变上一个版本内容
是拉取远程分支更新到本地代码库的操做,好比远程仓库的学习资料有更新,须要把新的内容下载下来,可使用git pull 是至关于从远程仓库获取最新版本,而后再与本地分支merge(合并)!
理解 fetch 的关键, 是理解 FETCH_HEAD,FETCH_HEAD指的是: 某个branch在服务器上的最新状态’。这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。
当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支,使用git fetch获取远程仓库最新代码,可是不会自动合并(merge),git fetch更安全一些,由于在merge(合并)前,咱们能够查看更新状况,而后再决定是否合并。
在使用git的时候,有些文件是不须要上传的,因此就能够修改 例如: 若是是对全部文件都取消跟踪的话,就是 git rm -r --cached . //不删除本地文件 git rm -r --f . //删除本地文件【不推荐使用,由于会把本地的文件也给删除了】 对某个文件取消跟踪 git rm --cached readme1.txt //删除readme1.txt的跟踪,并保留在本地(推荐使用) git rm --f readme1.txt //删除readme1.txt的跟踪,而且删除本地文件。
# 添加指定文件到暂存区 git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 git add [dir] # 添加当前目录的全部文件到暂存区 git add . #当咱们须要删除暂存区或分支上的文件, 同时工做区也不须要这个文件了, 可使用 git rm file_path #当咱们须要删除暂存区或分支上的文件, 但本地又须要使用, 这个时候直接push那边这个文件就没有,若是push以前从新add那么仍是会有。 git rm --cached file_path(文件名称,ysg.txt) #直接加文件名 从暂存区将文件恢复到工做区,若是工做区已经有该文件,则会选择覆盖 #加了【分支名】 +文件名 则表示从分支名为所写的分支名中拉取文件 并覆盖工做区里的文件 git checkout
【这里操做是已经提交了在本地代码库的操做】 #去掉上一次的提交(会直接变成add以前状态,即取消追踪) git reset HEAD^ #去掉上一次的提交(变成add以后,commit以前状态) git reset --soft HEAD^
git log # 查看提交历史 git log -p <file> # 查看指定文件的提交历史 git blame <file> # 以列表方式查看指定文件的提交历史 git log --oneline # 查看提交日志,而且只显示第一行
git merge <branch> # 合并指定分支到当前分支 git merge --abort # 取消当前合并,重建合并前状态 git merge dev -Xtheirs # 以合并dev分支到当前分支,有冲突则以dev分支为准 git rebase <branch> # 衍合指定分支到当前分支
git clone --depth=1 git@github.com:xxx.git
git branch -vv 查看当前开发分支 git branch 查看本地全部分支 git branch -r 查看远程全部分支 git branch -a 查看本地和远程全部分支