本文共 3633 字,大约阅读时间需要 12 分钟。
先送上一张常见命令表
1、刚下载安装完git后,初次配置:
// 先设置邮箱和用户名,用于提交的时候验证的git config --global user.name "xxx" git config --global user.email "xxx"
2、准备一个要clone的项目(码云、github、gitlab都可以),比如链接地址为: https://gitee.com/ xxxxxx.git (这个只是示范,不是真实有效的地址)
3、找一个空目录,用于存放代码文件的,在目录中右键,选择git bash
。调出命令面板。执行以下语句:
git init // 初始化一个空仓库git remote add origin https://gitee.com/ xxxxxx.git // 关联到远程仓库(这里需要换成自己的项目地址)git pull origin master // 获取远程仓库内容 pull就是获取的命令或 ---------------------------------------------------------------------git clone https://gitee.com/ xxxxxx.git // 如果不用上面的语句,也可以直接执行clone命令。效果和上面的命令一样。
如果是clone私有的项目,可能需要你输入帐号密码,输入后会自动把项目下载下来。
4、通常养成一个好的习惯,在下载代码后,新建一个自己的分支,再去修改文件的内容,通常不要直接在master(默认分支)
上直接开发。(至于为什么要创建那么多分支进行开发,也不是一两句说的清楚的)
执行以下语句,创建并切换到dev_test分支(注意图中红色圈住的区别,意思就是你当前在哪个分支下)git checkout -b dev_test
// 分支相关命令:git branch // 查看分支git branch dev_test // 创建一个名为dev_test的分支git checkout dev_test // 切换到名为dev_test的分支git checkout -b dev_test // 创建并切换到dev_test的分支(常用)git merge dev_test // 把dev_test的分支合并到当前分支git branch -d dev_test 删除名为dev_test的分支git branch -D dev_test //强行删除一个名为dev_test的分支
5、在分支上(或者在master上)修改好了文件的内容,准备提交到远程仓库。可以通过命令查看修改的内容和状态
git status // 查看文件状态//(看到红色的就是已经修改过的文件,而且没添加到仓库中)// (绿色的代表修改过的文件,已经添加到本地仓库,还没提交到远程仓库)git add . // 把所有修改过的文件,把需要提交的文件打包起来或者执行git add -A // 和git add .效果一样// 这时候在执行git status就会看到文件都变绿色了git commit -m '本次提交的备注' // 刚才的add .只是把所有文件打包起来,git commit 才是提交到本地仓库,-m 后面是本次提交文件的备注git push origin dev_test// push 把本地仓库的内容推送到远程仓库 // origin 这个是默认的// dev_test 代表dev_test分支,刚才我们是创建了dev_test分支,如果想推送到其他分支,就改成其他分支名称即可
如果不出意外,会成功提交,可以到自己项目那里,找到对应的分支查看是否已经推送上去。
当然意外还是会有的,比如和你一起开发的人,比你早推送了一个版本到远程仓库中,那么你在推送的时候,会报一个错误,提示需要先合并代码(注意只是合并代码,不是合并分支)如:
如果线上的代码,没有冲突,那么pull下来后,你就可以重新执行git push origin master
命令,把代码提交上去了(通常git会帮我们合并一些代码,并不会造成冲突)。当然还会有冲突的情况(比如2个人同时修改了同一个文件的同一个地方),那么使用pull命令就会变成这样:
>>>>>
这个代表冲突开始的地方 git add .
, git commit -m '备注'
, git push roigin master
。 重新推送上去就可以了 6、假设我们开发的dev_test分支测试通过了,需要合并到master分支
那么就执行切换分支的命令, 1)切换到master分支 2)在master分支下 使用git pull
确保master分支的代码是最新的 3)使用合并分支的命令 git merge dev_test
4)然后在使用git push origin master
推送到远程仓库的master分支上 7、关于git的一些拓展
1)假设修改的文件修改错了。这次并不想提交这个文件git add .
git add .
然后执行 git resert head 需要撤回的文件名git reset head 需要撤回的文件名
2)关于一些一直都不想提交的文件(比如使用vscode的时候,会有一个
.vscode的文件夹,和代码无关,不想提交到远程仓库,可是又不希望每次都剔除).gitignore
文件。可能在window下不能直接创建,那就在git bash 中,使用 touch .gitignore
。就会发现多了这么一个类似txt文件。然后在里面添加需要剔除的内容,一行一个3)关于git的其他一些命令
.git diff 文件名
git fetch --all git reset --hard origin/master git pull
git stash //把当前的工作临时存储起来,然后自己切换分支做其他的事情 git stash list //查看存储的工作区列表 git stash pop //恢复最近的一次工作,并且删除记录(常用) git stash apply stash@{id} //恢复指定id的工作,不过不会删除记录 git stash drop //删除
git tag为当前分支打一个 name 的标签 git tag 1586156 为历史提交打标签 1586156为历史提交的一个id号 git tag 查看标签 git push origin 可以推送一个本地标签; git push origin --tags可以推送全部未推送过的本地标签; git tag -d 可以删除一个本地标签; git push origin :refs/tags/ 可以删除一个远程标签。 git show 查看这个tag对应的id的信息
git log // 查看最近提交的版本号git reset --hard HEAD^ (回退上一个版本,^^回退2个版本)git reset --hard 315615 // 315615是在git log 中可以看到的// 回退指定的版本号id(这里的id在git log中可以看到,版本id只需要取前几位数git就能识别出来了)git reflog // 记录每一次的命令
在C盘中的用户对应用户的文件夹下找到.gitconfig追加:[credential]helper=store或者终端执行git config --global credential.helper store这样就会使用记住密码