赞
踩
working tree(工作区) 新添加的,和修改的未add操作的。
Stage(暂存区Index) add操作过后,会进入暂存区。
Repository(本地仓库) commit操作后,会进入本地仓库。
Remote(远程仓库) push操作后,会提交到远程仓库
HEAD: HEAD就是指向当前分支当前版本的游标
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
git config –-list //然后查看自己的配置
git config --global --unset user.name '你的用户名' //移除某个全局配制
git clone <远程连接> // 克隆远程项目,默认 clone 的是这个仓库的 master 分支。
git clone -b 分支名 <远程连接> // 克隆指定分支到本地
git add [file1] [file2] ...: 添加指定文件到暂存区。
git add [dir]: 添加指定目录到暂存区,包括子目录。
git add .: 添加当前目录的所有文件到暂存区。
git add -p: 添加每个变化前,都会要求确认,对于同一个文件的多处变化,可以实现分次提交。
git rm [file1] [file2] // 删除工作区文件,并且将这次删除放入暂存区。
git rm --cached [file] // 从暂存区删除文件,工作区则不做出改变。
git mv [file-original] [file-renamed]: 改名文件,并且将这个改名放入暂存区。
git rm -h
用法:git rm [<选项>] [–] <文件>…
-q, --quiet 不列出删除的文件
–cached 只从索引区删除
-f, --force 忽略文件更新状态检查
-r 允许递归删除
–ignore-unmatch 即使没有匹配,也以零状态退出
git commit -m [message]: 提交暂存区到仓库区。
git commit [file1] [file2] ... -m [message]: 提交暂存区的指定文件到仓库区。
git commit -a: 提交工作区自上次commit之后的变化,直接到仓库区。
git commit -v: 提交时显示所有diff信息。
git commit --amend -m [message]: 用一次新的commit,替代上一次提交,如果代码没有任何新变化,则用来改写上一次commit的提交信息。
git commit --amend [file1] [file2] ...: 重做上一次commit,并包括指定文件的新变化。
git commit --amend //如果提交时,commit后,突然发现,有些文件漏添加,此时可以重新 git add 文件。随后运行git commit --amend;最后再push即可 (amend 修改)
git push <远程仓库地址在本地所对应的仓库名,一般为origin> <本地分支名>:<远程分支名>。 //将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反)
git push -u <远程仓库地址在本地所对应的仓库名,一般为origin> <本地分支名>:<远程分支名> // -u 是指将本地的分支与远程分支相关联,下次直接push即可
git push <远程仓库地址在本地所对应的仓库名,一般为origin> <本地分支名> //将本地当前分支 推送到 与本地当前分支同名的远程分支上:
git push // 将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支)
注意:
- 受保护的分支,无法直接向其push代码,只能通过线上手动合并后修改其内容
- 要想合并代码,先把线上相应分支的代码fetch到本地新建的分支,再用当前的分支把新建的分支内容给合并进来,最后提交合并后的代码
git branch // 查看本地所有分支
git branch -r // 查看远程所有分支
git branch -a // 查看本地和远程所有分支
git branch <分支名> // 新建一个本地分支,但依然停留在当前分支
git branch -m <旧分支名> <新分支名> //重命名本地
git branch -d <分支名> //删除本地分支
git branch -r -d <分支名> //删除远程仓库里的指定分支
git branch -u <远程分支> //将本地当前分支与远程分支相关联
git branch -vv //查看本地分支与远程分支的映射关系
git checkout <分支名> //切换到本地指定分支
git checkout -b <分支名> // 新建一个本地分支,并切换到该分支
git checkout -- <file> //撤销本地的修改操作,恢复到修改之前的
git branch --set-upstream-to=origin/<远程分支> <本地分支>
git push set-upstream origin <远程分支>
git branch --unset-upstream
git fetch <远程地址> <分支名> //取回origin主机的master分支。eg: git fetch origin master
git remote -v: 显示所有远程仓库。
git remote add <本地命名的仓库名> <远程所对应的地址url> //本地增加一个新的远程仓库,并命名。
//将<指定分支>合并到当前分支,对所要合并的分支不产生影响,只对当前分支产生影响
git merge <指定分支>
// 取回远程仓库的变化,并与本地分支合并。
// 此操作相当于两个操作,1, git fetch 从服务器上抓取数据;2,git merge 尝试合并入当地远程分支
git pull <远程仓库在本地对应的仓库名> <远程分支名>:<本地分支名>
// 或者
git pull // 将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支)
//允许不相干历史合并
git pull <远程仓库在本地对应的仓库名> <远程分支名>:<本地分支名> --allow-unrelated-histories
> 分支合并后,如果冲突,手动解决冲突后,再次add --> commit --> push即可;
## 打标签
```bash
gti tag // 列出所有tag
git tag [tag] // 新建一个tag在当前commit
git tag -d [tag] // 删除本地tag。
git push <远程仓库> <标签名> //把相应标签内容推送到仓库
git status // 显示有变更的文件
git log //查看提交记录;
git log -p //查看并详细显示修改的地方
git log <file> // 查看该文件每次提交记录
git reflog // 显示你在这个分支上的操作记录
git show // 显示最近一次提交的内容
git show <commitId> // 先前具体某次提交时,所做的改变
git show <commitId> <文件路径> // 先前具体某次提交时,某个文件所做的改变
git diff // 查看 工作区 与 暂存区 的差别
git diff <file> // 比较当前文件工作区和暂存区文件差异
git diff --cached // 查看index file(暂存区)与commit(本地仓库)的差别的。
git diff HEAD // 查看working tree(工作区)和commit(本地仓库)的差别的,在这里HEAD代表的是最近的一次commit的信息。
git diff <commit_id> <commit_id> //查看两次commit之间的区别
git diff <远程分支> //远程分支与当前本地分支的区别
git checkout . // 恢复工作区内所有改动过的文件。
git checkout [file] // 恢复工作区内具体改动过的文件。
git reset HEAD <file> // 从暂存区撤销一个add
git reset HEAD^ //撤销本次commit操作,注意:工作区内容保留不变
git reset --hard HEAD^ //撤销本次commit操作并回退到上一个版本,注意:工作区内容恢复到上一个版本的时候(即当前工作区内容不做保留
如果已经 add,可以用 git reset HEAD 先撤销 add,
再丢弃工作区的更改
如果你已经commit了,可以用
git reset --hard HEAD^ 进行回退到上一版本
// 暂存现场,即将工作区恢复上一个状态,同时缓存工作区当前的修改,以待之后恢复 // 暂存现场,不论当前变更的内容在哪个状态(尚未add/add)。暂存恢复后,都是在未add的状态(即在工作区) git stash // 列出储藏的工作现场 git stash list // 恢复现场,但现场不删除 git stash apply // 多个现场时指定恢复某一现场,先用 git stash list 查看 git stash apply <stash id> // 恢复现场,并将现场删除 git stash pop // 删除现场 git stash drop
git. reset 会覆盖之前的提交记录,不建议
git reset --soft 目标版本号 // 仅仅重置HEAD到制定的版本,不会修改 暂存区 和 工作区
git reset --hard 目标版本号 // 慎用!!!! 重置HEAD、暂存区与工作区。
git reset --mixed 目标版本号 // 重置HEAD、暂存区,工作区不变。
// git reset 如果没有给出<mode>则默认是--mixed
git reset [file] // 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变。
git revert 是在当前版本的基础上新增一个版本,不影响以前的代码
// 1.git log查看要回退的版本号
git log
// 2.reset 回退版本
git reset --hard 目标版本号
// 3. 再通过git log 查看,目标版本号 之后的提交记录都没了,都被覆盖了
git log
// 4. 此时再推到远程仓库用git push 会报错,需要用git push -f强推上去才可以
git push -f
// 1.git log查看要回退的版本号
git log
// 2.revert 回退版本
git revert -n 目标版本号
// 3. 再通过git log 查看,是新建了一个版本,之前的版本都在
git log
// 4. 此时再正常提交即可。
git add .
git commit -m ""
git push
git branch -u origin/<分支名称>
# or
git branch --set-upstream-to origin/<分支名称>
在远程创建了一个新的分支dev,但是我在本地使用命令git branch -r查看远程的所有分支,没有这个新分支。
我们需要去更新一下远程仓库在本地仓库的缓存,通过如下命令:
git fetch origin
或者
git remote update origin
然后再查看git branch -r,就能看到更新啦
不跟踪的文件设置( .gitignore ):
在项目根目录下新建一个 .gitignore文件,将不需要跟踪的文件写入其中即可;(.gitignore可以用notepade++来建立即可)
注意: / 开头表示根目录
以/结尾表示是文件夹,而非文件
注意:如果你是新加的,这里需要注意的是.gitignore只能作用于没有被track的文件,也就是工作区的文件,
对于add,commit操作后的文件是没有作用的,这个时候需要先把本地的缓存删除,在去提交,
就可以实现忽略相应仓库文件了。
git rm -r --cached . //删除本地缓存,即使得所有文件不再被git追踪
git add . //再添加新的追踪
git commit -m 'update .gitignore'
参考链接一:https://github.com/WindrunnerMax/EveryDay/blob/master/Plugin/Git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4.md
参考链接二:https://blog.csdn.net/arkblue/article/details/9568249/
重点参考链接: https://www.cnblogs.com/Gxiaopan/p/6714539.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。