欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

git使用和常见命令

程序员文章站 2022-06-06 10:35:40
...

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使用和常见命令
我们也可以试下,创建一个已存在的分支
git使用和常见命令

// 分支相关命令:
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的分支合并到当前分支
// (注意:通常是切换到master分支,在执行合并操作,千万不要把master分支合并到自己的分支中)

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分支,如果想推送到其他分支,就改成其他分支名称即可

如果不出意外,会成功提交,可以到自己项目那里,找到对应的分支查看是否已经推送上去。

当然意外还是会有的,比如和你一起开发的人,比你早推送了一个版本到远程仓库中,那么你在推送的时候,会报一个错误,提示需要先合并代码(注意只是合并代码,不是合并分支)如:
git使用和常见命令

如果线上的代码,没有冲突,那么pull下来后,你就可以重新执行git push origin master 命令,把代码提交上去了(通常git会帮我们合并一些代码,并不会造成冲突)。当然还会有冲突的情况(比如2个人同时修改了同一个文件的同一个地方),那么使用pull命令就会变成这样:
git使用和常见命令
这时候就可以全局搜索一下>>>>>这个代表冲突开始的地方
git使用和常见命令
解决冲突也很简单,只要保留其中一个地方就可以了。把<<<<开头到 >>>>结尾的地方,改成正确的代码,然后重新执行 git add .git commit -m '备注'git push roigin master 。 重新推送上去就可以了
git使用和常见命令


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)假设修改的文件修改错了。这次并不想提交这个文件

  • 解决方法1:删除该文件,在使用git add .
  • 解决方法2:先使用git add . 然后执行 git resert head 需要撤回的文件名git reset head 需要撤回的文件名
    git使用和常见命令

2)关于一些一直都不想提交的文件(比如使用vscode的时候,会有一个
.vscode的文件夹,和代码无关,不想提交到远程仓库,可是又不希望每次都剔除)

  • 可以使用默认的一个文件,添加要排除的东西 .gitignore 文件。可能在window下不能直接创建,那就在git bash 中,使用 touch .gitignore 。就会发现多了这么一个类似txt文件。然后在里面添加需要剔除的内容,一行一个
  • 比如:这样就可以一劳永逸,不用每次都担心把额外的文件提交上去了(码云或者其他平台已经有很多gitignore文件模版,在创建项目的时候可以留意下)git使用和常见命令

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 aaa@qq.com{id}  //恢复指定id的工作,不过不会删除记录
    git stash drop   //删除

  • 标签
    git tag <name>  为当前分支打一个 name 的标签
    git tag <name> 1586156  为历史提交打标签  1586156为历史提交的一个id号
    git tag    查看标签
    git push origin <tagname>可以推送一个本地标签;
    git push origin --tags可以推送全部未推送过的本地标签;
    git tag -d <tagname>可以删除一个本地标签;
    git push origin :refs/tags/<tagname>可以删除一个远程标签。
    git show <name>   查看这个tag对应的id的信息

  • 版本控制(重点)
git log    // 查看最近提交的版本号
git reset --hard HEAD^   (回退上一个版本,^^回退2个版本)
git reset --hard 315615   // 315615是在git log 中可以看到的
// 回退指定的版本号id(这里的id在git log中可以看到,版本id只需要取前几位数git就能识别出来了)
git reflog   // 记录每一次的命令

  • 记住密码(如果你用的不是ssh的话,每次提交 / clone 代码都要输入帐号密码)
在C盘中的用户对应用户的文件夹下找到
.gitconfig
追加:

[credential]
helper=store

或者终端执行
git config --global credential.helper store
这样就会使用记住密码
相关标签: git教程