git 学习

一.新建代码库

 1. 在当前目录新建一个Git代码库
	git init
 2. 新建一个目录,将其初始化为Git代码库
 	git init 目录名
  3. 把代码克隆到本地
  	git clone 远程仓库地址

二.Git配置

 1. 配置项
	查:git config --list
	增:git config --global --add user.name '名字'
	删:git config --global --unset user.name 
	改:git config --global user.name '名字'
 2. 全局配置用户名和邮箱
	git config --global user.name '用户名 '
	git config --global user.emali '邮箱'

三.增加/删除文件

 1. 添加当前目录的所有文件到暂存区
	git add .            提交所有 修改、新建的数据暂存区
	git add -A           提交所有 被删除、被替换、被修改、新增的文件到数据暂存区
	git add -u           提交所有 被删除、修改的文件到数据暂存区
 2. 添加指定文件到暂存区
	git add 文件名
 3. 对于同一个文件的多处变化,可以实现分次提交
	git add -p
 4. 删除工作区文件,并且将这次删除放入暂存区
	git rm 文件名
 5. 停止追踪指定文件,但该文件会保留在工作区
	git rm --cached 文件名
 6. 改名文件,并且将这个改名放入暂存区
	git vm 源文件名 修改的文件名

四.代码提交

 1. 将暂存区内容提交到仓库区
	git commit -m '本次提交说明'
 2. 提交暂存区的指定文件到仓库区
	git commit 文件夹 --m '本次提交说明'
 3. 提交工作区自上次commit之后的变化,直接到仓库区
	git commit -a 
 4. 提交时显示所有diff信息   (不理解***)
	git commit -v
5. 如果代码没有任何新变化,则用来改写上一次commit的提交信息   (不理解***)
	git commit --amend -m '提交说明'
6. 重做上一次commit,并包括指定文件的新变化   (不理解***)
	git commit --amend 文件名
7.拉取远程分支的最新代码
	git pull

五.分支


 1. 列出所有本地分支【git branch】
 2. 列出所有远程分支【git branch -r】                                 
 3. 列出所有本地分支和远程分支【git branch -a】               
 4. 拉取远程分支【git checkout -b 分支名】                                        
 5. 新建一个分支,但依然停留在当前分支【git branch 分支名】           
 6. 新建一个分支,并切换到该分支【git branch -b 分支名】                     
 7. 切换到上一个分支【git checkout -】                                           
 8. 切换分支【git checkout 分支名】                                                          
 9. 删除本地分支【git branch -d 分支名】&【git branch -D 分支名 【强制删除】】
 10. 删除远程分支【git push --origin -delete 分支名】
 11. 将某分支的某次提交合并到另一分支【git cherry-pick 每次提交的commitId】
 12. 合并指定分支到当前分支 【git merge 指定分支名】
 13. 用于取消正在进行的合并操作,并尝试恢复到合并操作开始前的状态。在合并过程中遇到冲突,可用此命令来取消合并【git merge --abort】

六.标签 (不懂***)

1.列出所有tag
	git tag
2.新建一个tag在当前commit
	git tag [tag]
3.新建一个tag在指定commit
	git tag [tag] [commit]
4.删除本地tag
	git tag -d [tag]
5.删除远程tag
    git push origin :refs/tags/[tagName]
6.查看tag信息
	git show [tag]
7.提交指定tag
	git push [remote] [tag]
8.提交所有tag
	git push [remote] --tags
9.新建一个分支,指向某个tag
	git checkout -b [branch] [tag]

七.其他

场景:修复其他分支的bug时,当前修改的分支不想提交,可以使用下面命令
	1.将所有未提交的修改保存至堆栈中,用于后续恢复当前工作目录【git stash】
	2.查看当前stash暂存区中的内容【git stash list】
	3.将当前stash中的内容弹出,并应用到当前分支对应的工作目录上【git stash pop】
	**注:该命令将堆栈中最近保存的内容删除(栈是先进后出)**
	4.可以指定哪个stash恢复到当前的工作目录【git stash apply stash@{1}】
	5.清除stash堆栈中的所有内容【git stash clear】
	6.查看堆栈中最新保存的stash和当前目录的差异【git stash show】

场景:提交commit后发现提交文件多了,需要撤回当前commit提交。
	重置(reset)
	1.git reset --mixed HEAD^        不删除工作空间改动代码,撤销commit,并且撤销git add .
	   git reset --soft HEAD^         不删除工作空间改动代码,撤销commit,不撤销git add .
	   git reset --hard HEAD^         删除工作空间改动代码,撤销commit,撤销git add .      慎用 慎用 慎用
	HEAD^的意思是上一个版本,也可以写成HEAD~1 写几次代表撤回几次
	2.强制推送到远程仓库。 使用 git push --force 将本地更改强制推送到远程。这一步操作比较危险,因为它会覆盖远程仓库的历史,所以在团队项目中要慎用。
		
	恢复(revert)
	1.git log                     拿到commitId
	2.git revert commitId         这会创建一个新的提交,就是你 commitId更改的内容
	3.如果Git提示有冲突,需要手动解决这些冲突。改完后提交就可以了

场景:当提交内容提交分支错误要怎么办
	1.git cherry-pick commitId      找到提交错误的commitId,切换到要提交的分支,执行命令。就可以了。
	2.git cherry-pick commitId commitId    可以提交多个
	3.git cherry-pick commitIdA..commitIdB      可以一次性提交两个id直接的所有内容,不包括commitIdA
	4.git cherry-pick commitIdA^..commitIdB     可以一次性提交两个id直接的所有内容,包括commitIdA
	5.git cherry-pick -n commitId               如果不想自动提交,可以用 -n

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值