Git使用
Git常见使用
git clone http||ssh
代码拉取;git status
查看当前分支有哪些修改;git diff
查看当前没有add的内容git add .
将本地所有新增文件提交到本地缓存区git add [filepath]
将本地某个新增文件提交到本地缓存区git commit -m 'log'
把stage中所有的修改提交到本地库git push
把本地库的修改提交到远程库中git pull
把远程库的代码更新到工作台git fetch
把远程库的代码更新到本地库,相较于git pull,fetch只更新了本地的origin分支,需要用户自行与工作区比较合并,但pull会更新本地origin,同时更新工作区。git branch -a
查看全部分支git checkout master/branch
切换到某个分支git log
查看当前分支上面的日志信息git remote -v
查看远程仓库地址git branch 分支名
创建新的分支git revert commitid
将本地修改还原回 线上的版本git checkout -- a.txt
放弃某个文件在工作区的修改,不会修改缓存区(add)和HEAD(commit)版本,还原到缓存区状态git checkout -- .
放弃整个工作区的修改git reset HEAD --hard
放弃缓存区(add)的修改,–hard 同时更改工作区,不然只撤销对缓存区的修改git reset HEAD a.txt
放弃缓存区某个文件的记录,但是不会更改文件git reset HEAD .
放弃整个缓存区的文件记录,但是不会更改文件git reset --hard commitid
回到某个提交的commitgit reset --hard HEAD^
回到当前HEAD的上一个版本git checkout -b branchName
切换都某一个分支,如果没有此分支,则创建后切换到该分支
常见场景:
撤销:未进行git push前的所有操作,都是在“本地仓库”中执行的。
文件被修改了,但未执行git add操作(working tree内撤销)。 记住
checkout
是撤销对工作区的更改。git checkout fileName git checkout .
同时对多个文件执行了git add操作,但本次只想提交其中一部分文件。记住
reset
是撤销对缓冲区的更改。HEAD代表回退操作的版本。git add * git status # 取消暂存 git reset HEAD filename
文件执行了git add操作,但想撤销对其的修改(index内回滚)。
# 取消暂存 git reset HEAD fileName # 撤销修改 git checkout fileName
修改的文件已被git commit,但想再次修改不再产生新的Commit
git add sample.txt git commit --amend -m "说明"
撤销指定文件到指定版本
# 查看指定文件的历史版本 git log <filename> # 回滚到指定commitID git checkout <commitID> <filename>
删除最后一次远程提交
# 使用revert git revert HEAD git push origin master # 使用reset git reset --hard HEAD^ git push origin master -f # revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在; # reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。
回滚某次提交
# 找到要回滚的commitID git log git revert commitID
分支合并
git checkout master git merge dev # 若有冲突,则处理冲突完毕后git add, git commit提交 git push
建议线上版本以tag的方式进行保存,而不是一个分支,分支更新如果出错就会回滚,而用tag就可以直接切换,方便快捷。
git强制拉取更新远程最新代码,当reset重置了本地head后。
git fetch --all
# 重置head为远程head
git reset --hard origin/master
# 更新
git pull