当前位置: 首页>数据库>正文

git常用操作

1.环境配置

git config --global user.name "goto456" // 设置用户名称

git config --global user.email "goto456@126.com" // 设置邮件地址

git config --list命令可以列出当前Git所有的配置信息。

2.初始化本地仓库

第一种方法是git init在本地初始化

第二种方法是git clone远程仓库到本地

https方式:不管是谁,只要拿到该项目的 url 可以随便 clone,但是在 push 到远程的时候需要验证用户名和密码;

ssh方式:需要现将你电脑的SSH key(SSH公钥)添加到GitHub(或者其他代码托管网站)上,这样在 clone 项目和 push 项目到远程时都不需要输入用户名和密码。

公钥一般在~/.ssh/目录下,若无,则生成公钥:ssh-keygen // 然后一直按回车键

3. git status 查看当前状态,一般会显示当前所处的分支,以及当前工作区是否干净,是否有文件要提交。

4. git add: 添加到暂存区

git addhello.txt????? //后面接文件名,表示将某个文件添加到暂存区??

git add .???????????????? //后面接一个点,表示将全部文件添加到暂存区

5. git commit: 提交到版本库

git commit -m "变更的说明信息"?????? //标准用法,提交到版本库并填写相关说明信息

git commit -am "变更的说明信息"???? //加上-a参数,则不需要上一步的git

add过程,可以直接将修改过的变更直接提交到版本库,但不会把新增的文件提交。一般在不想把新增的文件提交到版本库时用的比较多

6. git log: 查看提交历史

git log????????????????? //查看历史版本

git log--graph???? //以图形的方式查看历史(这个我比较常用,能很好的显示各个分支之间的关系)

7. git reset: 回退版本

回退到前n个版本就是:gitreset HEAD~n

注意:在 Git 中,用 HEAD 表示指向当前版本的指针

如果需要回退到任何一个版本,则需要替换成该版本的 commit id 就可以了,例如:git reset a8336834b50daafa0793370,执行完再看一下历史:

一般情况下会加一个 --hard 参数:git reset --hard HEAD~1 或 git reset --hard a8336834b50daafa0793370,表示回退到某个版本并且丢弃调工作区进行的修改,而不加该参数表示回退到某个版本但保留工作区的修改。

8. git diff: 显示变更内容

git diff??????????????????????????? //后面不接参数,表示显示所有修改文件的变更

git diff 分支名字+README.md????? //后面接文件名,表示只显示该文件的变更

git diff HEAD 显示工作目录与git仓库之间的差异,而git diff HEAD^ 则显示上一次提交之前工作目录与git仓库之间的差异。所以我们在git pull后,可以通过git diff HEAD^ 来查看拉下来的文件有那些具体的修改。

9. git push: 推送本地分支到远程

命令:git push origin master

origin 表示远程代码库的一个别名也可以修改为其他名字,可通过 git remote 修改,例如git remote add origin 远程仓库地址,这将在本地仓库中添加一个远程仓库别名(origin),git remote

set-url origin 远程仓库地址,可以将现有的远程仓库关联到远程仓库地址。

,master 表示需要推送的分支名称。

10. git pull: 拉取远程分支到本地并合并

一般是本地分支的进度落后于远程分支时,需要使用该命令。

命令:git pull origin master

origin 表示远程代码库的一个别名(也可以修改为其他名字,可通过 git remote 修改),master 表示需要拉取合并的分支名称。

常用 git pull --rebase origin master 用 rebase 的方式进行,不会产生 merge 保持分支干净、整洁

11. git checkout -b branchName 用于新建名为branchName 的分支并切换到该分支上。

12. git merge: 合并分支

该命令用于合并两个分支。

命令:git merge branch Name 用于将名为 branchName 的分支合并到当前分支

13. git tag: 标签的操作

截止到图中的最近一次提交,我们完成了 1.0 版本的开发,则可以通过以下命令为其打上版本的标签。

命令:git tag v1.0 为当前提交打上 v1.0 的标签

命令:git tag v1.0 ab1591eb4e06c1e93fdd50126b9fab8a88d89155 为这个节点打上 v1.0 的标签

如果想将标题推送到远程库,则可以使用如下命令来完成。

命令:git push origin --tags 将打的 tag 都推送到远程库

14. git show: 显示信息

可用于显示某次提交或者某个 tag 相关的信息。

命令:git show commit_id 显示某次提交的详细信息

15. git blame: 查看文件每行的提交历史(追责)

可用于查看某个文件中的每一行是那次提交产生的,是谁提交的,什么时候提交的,提交的版本号是多少等等详细信息,在实际工作中方便对出问题的代码进行追责,找到产生 BUG 的责任人。

命令:git blame file_name

16. git fetchorigin master+git merge origin/master=git pull origin master

它是把远程提交拉取到本地仓库,而不是本地工作目录,它不会自行将这些新数据合并到当前工作目录中,我们需要继续执行git merge才会把这些变动合并到当前工作目录。

普通开发人员,一般按照如下几个步骤来进行开发、测试工作就可以了:

将远程 dev 分支 clone 到本地,例如:git clone git@github.com:goto456/test.git;

从 dev 分支拉出(新建)自己的feature 分支用于开发,例如:git checkout -b feature_login;

在自己的 feature 分支上进行开发工作;

开发完了用 add、commit 等操作提交到当前分支;

如果需要在测试环境进行测试,则将远程 test 分支拉到本地,例如:gitbranch test origin/test;

将自己的 feature 分支合并到 test 分支,并将 test 分支 push 到远程,例如:git rebase test, git checkout test, git merge feature_login, git push origin test;(注意:我们推荐用 rebase 来合并,以保证分支的整洁、美观)

通过公司的发布平台将远程 test 分支发布到测试环境进行测试;

如果测试没问题或者开始就不需要测试,这可以直接将当前 feature 分支合并到 dev 分支,并 push 到远程库,例如:git rebase dev, git checkout

dev, git merge feature_login, git push origin dev;(注意:我们推荐用 rebase 来合并,以保证分支的整洁、美观)

这时表示该功能已经开发完成了,代码的 review 以及发布,需要团队 leader 在合并到 master 操作时进行;这时可以删除了自己的 feature 分支,例如:git branch -d feature_login;

如果在 push 到远程的时候提示需要先pull 时,我们推荐使用rebase 的方式:git pull --rebase 以保持分支的整洁、美观。


https://www.xamrdz.com/database/6g51997429.html

相关文章: