在日常开发的工作中,使用git代码管理是必不可少的一项技能,在提交和修改代码的过程中,常常会有各种冲突和需求,这时候需要通过不同的命令来提交和修改代码的版本。下面是我整理了一些git常用的命令,希望对你们有帮助。
1. git log
git log主要用来显示分支中提交更改的记录。当执行git commit以存储一个快照的时候,文件详单、提交消息和提交者的信息、此次提交所基于的快照都会被保存 git log –oneline,可以显示更加短小的提交ID git log –graph,显示何时出现了分支和合并等信息 git log –pretty=raw,显示提交对象的parent属性
2 .git diff
git diff,需配置beyond compare
3. git status
git status,查看你的代码在缓存与当前工作目录的状态
4. git add
git add . ,Git会递归地将你执行命令时所在的目录中的所有文件添加上去,所以如果你将当前的工作目录作为参数,它就会追踪那儿的所有文件 git add -i,交互式的方式进行添加
5. git commit
gut commit -m ‘注释’ 本地代码提交
6. git push
git push origin 本地分支:远程分支 git push [branch],就会将你的 [branch] 分支推送成为 [alias] 远端上的 [branch] 分支,要推送的远程版本号的URL地址由remote..pushurl给出,如果没有配置,则使用remote..url配置的URL地址。 git push origin <本地分支名>:<远程分支名> =>将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反) git push origin <本地分支名> =>将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反) git push origin =>将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支) 推荐使用git push origin <远程同名分支名> git push --set-upstream origin <本地分支名> =>将本地分支与远程同名分支相关联
7. git reset
还原本地工作文件,把当前分支指向另一个位置,并且有选择的变动工作目录和索引 git reset –hard ,替换引用的指向,替换暂存区,替换工作区 git reset –soft ,只更改引用的指向,不改变暂存区和工作区 git reset,用HEAD指向的目录树重置暂存区 git reset – filename,将文件filename的改动撤出暂存区,暂存区其他文件不变
8. git branch
git branch,显示当前所在的分支 git branch ,创建新的分支branchname git branch -d ,删除名称为branchname的分支
9. git checkout
git checkout,检出命令。 git checkout branchname,会改变HEAD头指针,主要用于切换分支 git checkout -b branchname,用于创建一个新的分支,并且切换到创建的新的分支上 git checkout –filename,用暂存区中的filename文件来覆盖工作区中的filename文件 git checkout –filename,用指定提交中的文件覆盖暂存区和工作区中对应的文件 git checkout – .或者git checkout .,用暂存区的所有文件直接覆盖本地文件,取消所有的本地的修改,是一条危险的操作
10. git pull
//从远端的服务器上下载数据 git pull origin 远程分支:本地分支 git pull //从远端的服务器上下载数据,从而实现同步更新。要获取的远程版本库的URL地址由remote..url提供。 git pull origin <远程分支名>:<本地分支名> //将远程指定分支 拉取到 本地指定分支上 git pull origin <远程分支名> //=>将远程指定分支 拉取到 本地当前分支上 git pull origin //=>将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支)
注:在克隆远程项目的时候,本地分支会自动与远程仓库建立追踪关系,可以使用默认的origin来替代远程仓库名, 所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。
11. git fetch
git fetch //拉取分支 git fetch origin //远程分支:本地分支(新建分支) /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ git fetch –all git reset –hard origin/master //以上两行命令,可以强行远程覆盖本地分支。
12. git merge
git merge test //把test合并到当前分支
13. git push origin develop:master -f
一个分支完全覆盖另一个分支,上面命令可以把本地的develop分支强制(-f)推送到远程master
14. 查看分支冲突
git status -uno
15 .删除远程指定分支
- git branch -d fwj #删除本地名为fwj的分支
- git push origin –delete fwj #删除远程仓库中名为fwj的分支。
16 .修改远程指定分支名称
- 首先 git branch -m 旧分支名 新分支名
- 其次 git push –delete origin 旧分支名
- 将新分支名推上去 git push origin 新分支名
- 将新本地分支和远程相连 git branch –set-upsteam-to origin/新分支名
17.提交丢失代码恢复
在Sourcetree中,进行一次提交后,如果马上切换到其他分支,会导致提交到临时分支的这次提交丢失。或者没有选中本地分支就直接推向远程分支也会导致这次提交的代码丢失。
解决方法如下:
- Sourcetree中,点击命令行模式,启动git命令行
- 输入 git reflog 显示历史提交记录
- 找到那次commit后,拷贝其最前面的 id(黄色标记)
- 在原来的版本上创建新的分支:选择指定的提交,并输入刚才的id,即可创建成功。
第四步的命令操作如下:
git checkout -b demo b1311d8 //=>创建分支并检出 <推荐> 或者 git branch demo b1311d8 //=>创建分支不检出
界面操作截图如下:

此时刚才丢失的提交就回来了,问题得到解决。
原创文章,作者:Ferrycoln,如若转载,请注明出处:https://ms200.cn/archives/390