GIT
git操作原理
基本命令
命令 | 含义 | ||
---|---|---|---|
$ git init | 初始化本地仓库 | git在.git文件内管理版本 | |
$ git clone <远程仓库的网址> | 默认在当前目录下创建和版本库名相同的文件夹并下载版本到该文件夹下 | ||
$ git clone <远程仓库的网址> <本地目录> | 指定本地仓库的目录 | ||
$ git clone <远程仓库的网址> -b <分支名称> <本地目录> | -b 指定要克隆的分支,默认是master分支 | ||
$ git status | 查看本地仓库的状态 | ||
$ git status -s | 以简短模式查看本地仓库的状态 | 第一列是文件的状态,第二列是对应的文件 | A 新增,M 修改,D 删除,?? 未添加到Git中 |
$ git add <文件路径> | 把指定的文件添加到暂存区中 | ||
$ git add --update/-u [<文件路径>] | 添加所有修改、已删除的文件到暂存区中 | ||
$ git add -A/–all [<文件路径>] | 添加所有修改、已删除、新增的文件到暂存区中,省略 <文件路径> 即为当前目录 | $ git add . 只能够提交当前目录或者它后代目录下相应文件,$ git add all无论在哪个目录执行都会提交相应文件 | |
$ git reset [<文件路径>] | 相当于将用 “git add” 命令更新到暂存区的内容撤出暂存区,可以指定文件 | ||
$ git checkout <文件路径> | 替换掉本地的改动,新增的文件和已经添加到暂存区的内容不受影响 | ||
git commit -m ‘<message>’ | 暂存区文件添加至本地仓库 | ||
git push <remote gitee address> <branchname> | 将指定分支推送到指定远端(远端不存在该分支则自动创建) | ||
git pull <remote> <branch> | 从指定远端的指定分支拉取代码 | ||
git branch | 查看已有分支列表和当前分支 | ||
git status | 查看当前工作区是否有untracked文件 及 暂存区是否有未commit的文件 | ||
git log [-- stat] | 查看历史提交版本记录[-- 展示内容变动] | ||
git checkout [-b] <branchname> | 切换到指定分支[- 创建指定分支] | ||
git merge | |||
git tag | |||
git tag -a <tagname> -m <tagmesage> | |||
git remote add <remotename> <remote gitee address> | |||
git remote remove <remotename> | |||
git stash | |||
git reset --hard HEAD^ | |||
git checkout <filename> | 撤销工作区的修改,回退到最近一次commit或add |
命令使用
1. 远程仓库克隆到本地(仅包含.gitignore及a.txt)
2. 修改a.txt,新增b.txt,然后查看本地仓库的状态
Changes not staged for commit:源文件被git管理,但修改未被git管理
Untracked files: 没有被git管理的文件
以上两种情况均称为unstaged(未被git跟踪)。
其中:未被Git跟踪的状态为unstage状态
3. 执行add命令把修改和新增提交到暂存区
4. 如果反悔,可回滚之前的所有操作(相当于没有修改a.txt也没有执行add命令)
首先把"git add --all" 命令更新到暂存区的内容撤出暂存区,可以指定文件,然后使用"git checkout <文件路径>"替换掉本地的改动。
5. 执行pull操作时的冲突解决
此时执行pull命令
处理方式1:stash我本地的修改,a.txt内容变为空,pull 远程库的修改,a.txt变为其他同事修改的内容,stash pop
git自动把冲突合并到a.txt,需要手动解决冲突,之后进行add、commit、push操作即可。
处理方式2:commit我本地的修改,pull 远程库的修改,再处理冲突文件
注意:如果文件里有<<<<<<<=======>>>>>>>这些冲突文件的字符,pull下来不会识别为冲突文件
常见问题
git强制覆盖本地命令: git fetch --all && git reset --hard origin/master && git pull