仅仅是一些使用总结,不敢保证完全正确
git逻辑
git config
git config --system 系统级
git config --global 只适用于当前登录用户的配置
git config --global --list 显示用户名和用户和email地址
git config --global user.name "xxx" #设置用户名
git config --global user.email "xxx" #设置用户邮箱
git status
git status 命令可以用来查看当前 Git 仓库的状态,包括:
有哪些文件被修改过但还没有被提交(untracked,modified,staged)。
有哪些文件已经被添加到暂存区(staged)。
有哪些文件已经被提交到本地仓库但还没有被推送到远程仓库(ahead)。
有哪些文件已经被推送到远程仓库但本地仓库还没有更新(behind)。
当前所在的分支。
git status 命令会返回当前 Git 仓库的状态,并提供一些提示信息,例如:
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
new_file.txt
上面的输出信息表示:
当前所在的分支是 master 分支。
本地仓库比远程仓库多了一个提交。
README.md 文件被修改过但还没有被提交,需要使用 git add 命令将其添加到暂存区。
新建了一个名为 new_file.txt 的文件,需要使用 git add 命令将其添加到暂存区。
git checkout
git checkout 命令可以用来切换分支或恢复文件。
切换分支
使用 git checkout 命令可以切换到指定的分支。例如:
git checkout develop
上面的命令将当前所在的分支切换到 develop 分支。
恢复文件
使用 git checkout 命令还可以恢复被修改过的文件。例如:
git checkout -- file.txt
上面的命令将 file.txt 文件恢复到最近一次提交的状态。
需要注意的是,使用 git checkout 命令恢复文件会覆盖当前工作目录中的文件,因此需要谨慎使用,确认恢复的文件是正确的版本。另外,如果文件还没有被添加到暂存区,使用 git checkout 命令也可以恢复文件,但是需要加上 --,例如:
git checkout – new_file.txt
上面的命令将未被添加到暂存区的 new_file.txt 文件恢复到最近一次提交的状态。
git branch
git branch 命令用于列出、创建、重命名和删除分支。
列出分支
使用 git branch 命令可以列出当前 Git 仓库中所有的分支。例如:
git branch
上面的命令将列出所有分支,当前所在的分支前面会有一个星号标记。
创建分支
使用 git branch 命令并指定分支名称可以创建一个新的分支。例如:
git branch new_branch
上面的命令将创建一个名为 new_branch 的新分支,但是并不会切换到新分支,需要使用 git checkout 命令切换到新分支。
切换分支
使用 git checkout 命令并指定分支名称可以切换到指定的分支。例如:
git checkout new_branch
上面的命令将当前所在的分支切换到新分支 new_branch。
重命名分支
使用 git branch 命令并指定 -m 参数可以重命名一个分支。例如:
git branch -m old_branch new_branch
上面的命令将名为 old_branch 的分支重命名为 new_branch。
删除分支
使用 git branch 命令并指定 -d 参数可以删除一个分支。例如:
git branch -d new_branch
上面的命令将名为 new_branch 的分支删除。需要注意的是,如果要删除的分支还没有被合并到其他分支,需要使用 -D 参数强制删除分支。例如:
git branch -D new_branch
上面的命令将强制删除名为 new_branch 的分支。
git log
git log 命令用于查看 Git 仓库的提交历史。
默认情况下,git log 命令会按照提交时间从最新的提交开始显示。
git diff
git diff 命令用于比较 Git 仓库中的不同版本之间的差异。
默认情况下,git diff 命令会比较当前工作目录中的文件和最新提交版本之间的差异。如果指定了文件名,它将只比较该文件的差异。如果指定了提交 ID,它将比较该提交版本和当前工作目录之间的差异。如果指定了两个提交 ID,它将比较这两个提交版本之间的差异。
常用选项:
–cached: 比较暂存区和最新提交版本之间的差异。
–stat: 以简洁的形式显示文件的差异统计信息。
–color: 以彩色输出显示差异信息。
-w: 忽略空格差异。
git add
git add 命令用于将工作目录中的文件添加到 Git 仓库的暂存区。这个命令可以将文件的变化添加到下一次提交中。如果在提交之前没有使用 git add,那么 Git 不会跟踪和记录那些变化。
常用选项:
-A:将工作目录中所有变化的文件添加到暂存区。
:将指定的文件添加到暂存区。
例如,执行以下命令将 file.txt 文件添加到暂存区:
git add file.txt
git commit
git commit 命令用于将暂存区中的文件提交到 Git 仓库。每次提交都会创建一个新的提交对象,包含一个指向该提交的指针,以及提交时的作者、提交时间、提交信息等元数据。
常用选项:
-m:指定提交信息。
例如,执行以下命令将暂存区中的文件提交到 Git 仓库,并添加提交信息:
git commit -m “Add file.txt”
git push
git push 命令用于将本地 Git 仓库中的代码推送到远程仓库中。它可以将本地分支中的代码更新到远程分支中,或者创建一个新的远程分支。
常用语法:
git push remote <local_branch>:<remote_branch>
其中,remote 是远程仓库的名称,<local_branch> 是本地仓库的分支名称,<remote_branch> 是远程仓库的分支名称。如果 <remote_branch> 不存在,将会创建一个新的远程分支。
例如,执行以下命令将本地的 master 分支推送到远程仓库 origin 的 master 分支上:
git push origin master:master
如果本地分支和远程分支的名称相同,可以简写为:
git push
例如,执行以下命令将本地的 master 分支推送到远程仓库 origin 的 master 分支上:
git push origin master
需要注意的是,如果远程分支中已经存在其他人的代码,执行 git push 命令可能会产生冲突。在这种情况下,需要先使用 git pull 命令将远程代码合并到本地分支中,再执行 git push 命令推送代码。
git pull
git pull 命令用于从远程 Git 仓库获取最新的提交并合并到当前分支。它相当于执行 git fetch 和 git merge 两个命令的组合。
常用选项:
remote:指定要拉取的远程仓库,默认为 origin。
branch:指定要拉取的远程分支的名称,默认为当前分支所跟踪的远程分支。
例如,执行以下命令将从远程仓库的 main 分支获取最新的提交并合并到当前分支:
git pull origin main
需要注意的是,如果当前分支有未提交的变更,git pull 命令会自动尝试合并远程提交和本地提交。如果合并过程中出现冲突,需要手动解决冲突并提交合并结果。
另外,如果使用 git pull 命令遇到问题,可以考虑使用 git fetch 和 git merge 分别执行拉取和合并操作。这样可以更好地控制拉取和合并的过程,避免出现意外情况。
在git上新建一个工程并上传代码
- 在git上创建新的工程仓库。
- 创建本地工作区,并将工程clone到本地。
- 在本地工作区编写代码。
- 使用git add将代码加入到暂存区。
- 使用git commit提交代码到本地仓库。
- 使用git push将代码上传到远程仓库。
具体步骤如下:
-
在git上创建新的工程仓库。
登录git,进入仓库界面,点击“New repository”按钮,填写仓库名称、描述等信息,选择公开或私有仓库,然后点击“Create repository”按钮创建新的仓库。 -
创建本地工作区,并将工程clone到本地。
使用终端或git客户端,在本地创建工作目录,然后使用以下命令将远程仓库clone到本地:
git clone https://github.com/username/repository.git
其中,username是你的git账号名称,repository是你在第1步创建的仓库名称。
-
在本地工作区编写代码。
在工作目录下创建代码文件,编写所需的代码。 -
使用git add将代码加入到暂存区。
使用以下命令将代码加入到暂存区:
git add .
- 使用git commit提交代码到本地仓库。
使用以下命令将代码提交到本地仓库,并添加提交信息:
git commit -m "commit message"
其中,commit message是提交的信息,可以填写对当前提交内容的简要描述。
- 使用git push将代码上传到远程仓库。
使用以下命令将本地分支上的代码推送到远程仓库:
git push origin master
其中,origin是远程仓库的别名,master是要推送到的分支名称。如果是第一次使用git push命令,可能会需要输入github账号信息进行身份验证。
完成以上步骤后,代码就被上传到了远程仓库,并可以在git上访问和管理。
Git 上新建分支并上传代码
- 确认当前本地仓库位于 master 分支。
在工作目录中使用以下命令查看当前分支:
git branch
如果当前分支为 master 分支,则会有一个 ‘*’ 号标识该分支。
如果不是 master 分支,在工作目录中使用以下命令切换到 master 分支:
git checkout master
- 在本地创建新的分支。
在工作目录中使用以下命令创建新的分支:
git branch new-feature
其中,new-feature 为新分支的名称.
- 切换到新的分支。
在工作目录中使用以下命令切换到新的分支:
git checkout new-feature
-
在新的分支上进行代码开发。
在工作目录中编辑代码,添加、修改、删除文件等操作。 -
添加、提交代码并推送到新的分支。
使用以下命令添加、提交代码并推送到新的分支上:
git add .
git commit -m "Add new feature"
git push origin new-feature
其中,origin 是远程仓库的别名,new-feature 是新分支的名称。
-
在 Git 上确认是否上传成功。
在 Git 上进入仓库页面,选择新分支,确认上传成功。 -
合并到 master 分支。
在开发新功能后,需要将所做的更改合并回主分支,即 master 分支。在工作目录中使用以下命令切换回 master 分支:
git checkout master
然后使用以下命令将新分支的更改合并进 master 分支:
git merge new-feature
最后使用以下命令将本地的更改推送到远程 master 分支:
git push origin master
这样就完成了新建分支并上传代码到分支的流程。