1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| # 将工作区的修改提交到暂存区 git add <file> git add . # ------------------------------------------
# 将暂存区的内容提交到版本库 git commit <file> git commit . git commit -a # 包括git add/ git rm /git commint 这三个操作,所有一般在操作工作区的时候,直接删除了文件,而不是使用git rm的,最后提交是可以用这个,如下 # git commit -am "提交信息" git commit -amend # 修改最后一次提交的信息
# 抛弃工作区修改(使用当前暂存区的内容状态去覆盖工作区,从而达到抛弃工作区修改的作用) git checkout <file> git checkout .
# ------------------------------------------
# 改变暂存区的修改(其实是重置HEAD,将指定版本库的内容状态去覆盖暂存区,从而达到暂存区的改变) git reset <file> # 从暂存区恢复到工作区(不指定版本id,则默认为最后一次提交的版本id) git reset . # 从暂存区恢复到工作区 git reset $id # 恢复到指定的提交版本,该$id之后的版本提交都恢复到工作区 git reset --hard $id # 恢复到指定的提交版本,该$id之后的版本提交全部会被抛弃,将不出现在工作区
# 注:如果不小心使用了错误的HEAD重置,会发现HEAD指向了重置的版本id,该版本之后的版本提交都不见了,使用git log也无法找到,需要使用下面的命令 git reflog show master | head # 会显示所有版本纪录 git reset --hard $id # 重新重置,至于--hard,根据将改变的内容放到工作区还是直接抛弃进行选择
# ------------------------------------------ # 恢复某次提交(某次提交的回滚操作,不影响其他的提交,所产生的效果创建一个新的版本提交去回滚指定的提交) git revert <$id> git revert HEAD # revert和reset的差异:git reset是把HEAD向后移动了以下,而git revert是HEAD继续前进,只是新的内容和revert的内容正好相反
# ------------------------------------------ # 删除文件 # 1.在工作区删除 rm your_file # 直接在工作区删除文件 git add -u . # 将有改动的都提交到暂存区(包括修改的,删除的等操作)。git 2.0后不加-u也可以 git commit -m "message" # 提交到版本库
# 2.同样在工作区删除 rm your_file git commit -am "message" # -a包括了 git add/git rm/git commit三个操作
# 3.使用git rm git rm <file> # 不仅在工作区删除文件,同时将删除操作提交到暂存区 git commit -m "message" # 提交到版本库
# git rm其他补充 git rm --cached <file> # 从暂存区中去除该文件,git将不再跟踪该文件的变更,但仍然在工作区内
|