git init:创建一个新的 Git 仓库
cd /path/to/project/codebase
git init
git clone:克隆一个 Git 仓库
//git clone命令使您可以访问其他用户存储库代码库,这使得下载和个性化大量可公开访问的用户存储库变得容易。
//如果您对GitHub等平台上托管的公共存储库感兴趣,您可以通过指定存储库的有效 Git URL 来检索它:
git clone [URL]
//在 GitHub 上,它将是这样的:
git clone https://github.com/username/repository_name.git
//您还可以指定用于下载目标存储库的目录:
//下面命令将gitcommandtutorials存储库下载到test-dir目录中
git clone https://github.com/jumagemini/gitcommandtutorials.git test-dir
//另一方面,您可能对克隆特定的存储库分支感兴趣:
git clone --branch <branch_name> [URL]
//或者
git clone -b <branch_name> [URL]
//例子:
git clone -b developer https://github.com/jumagemini/gitcommandtutorials.git
git add:添加文件内容到暂存区
//git add命令可用于收集暂存文件。暂存区(也称为index)提供收集文件的临时存储,
//同时在进行任何存储库提交之前跟踪与当前/活动存储库关联的文件更改。文件需要已经存在。
//添加单个文件
//要为暂存添加单个文件,请执行:
git add [file_name]
//添加多个文件
//要为暂存添加多个文件,请执行:
git add file1 file2 file3
//添加所有文件
//要添加用于暂存的所有文件(新文件和修改后的文件),请执行:
git add -A
//添加删除和修改的文件
//要仅添加已删除和已修改的文件以进行暂存,请实施:
git add -u
//在当前目录中添加文件
//要在当前目录中添加所有创建和修改的文件以进行暂存,请执行:
git add .
//添加具有特定文件扩展名的文件
//要添加与特定文件扩展名关联的所有文件,例如 Python 文件,请执行:
git add *.py
git rm -f:从 Git 存储库中删除文件
//git rm命令可用于从 git 存储库中删除不需要的项目文件。该-f标志强制删除带有阻止正常删除限制的文件。
//它还会暂存已删除的文件以供提交,以便托管存储库知道已删除的项目文件。
//删除单个文件
//要删除单个文件,请执行:
git rm -f file4.txt
//删除多个文件
//要删除多个文件,请执行:
git rm file1.txt file2.php file3.py file4
//删除目录
//我们还可以使用-r标志递归地删除项目目录及其内容:
git rm -f -r directory_name
git mv:移动或重命名 Git 存储库文件
//git mv命令移动并重命名 Git 存储库文件。来自这些移动和重命名操作的更改也被暂存以提交到存储库。
//重命名项目文件
//要重命名项目文件,请执行以下命令:
git mv old-name.txt new-name.txt
//移动项目文件
//要将项目文件移动到不同的目录,请执行:
git mv file3.txt beta/file3.txt
//等价于三个子操作:
mv file3.txt beta/file3.txt
git add beta/file3.txt
rm file3.txt
git commit:将更改保存到 Git 存储库
//提交对于版本控制很重要,因为代码库的快照副本由 git 存档。git commit命令永久存储(在存储库中)来自 git add 命令的暂存更改。
//添加新提交
//要添加新提交,请实施:
git commit -m "commit message"
//修复先前的提交
//要修复最新一次的提交(覆盖记录):
git commit --amend -m "commit message"
//提交修改后的文件
//要提交所有修改过的文件(在暂存之后),请使用-a如下所示的标志:
git commit -a -m "Commit message"
git branch:列出、创建或删除分支
//git branch命令在列出、创建和删除 Git 存储库项目分支时很有用。
//当前或主要分支标有星(*)号。
//列出存储库分支
//要列出所有存储库项目分支,请运行:
git branch
//创建一个新分支
//要创建一个新分支,请运行
git branch [new-branch-name]
//删除现有分支
//要删除现有分支,请执行:
git branch -d [branch-name]
//如果该分支有尚未合并的更改,确信要删除它,可以使用强制删除选项
git branch -D [branch-name]
// 删除远程分支
git push origin --delete <branchName>
//为避免错误,请确保在删除分支之前已离开该分支。
//例如,如果您仍在一个名为newest的分支上并需要删除它,请先离开该分支并移动到另一个现有分支或主分支上,然后再删除它。
//切换到另一个分支(例如 main):
git checkout main
//现在删除最新的分支:
git branch -d newest
//==================================
//==================================
//查看本地分支和远程分支的对应关系
git branch -vv
//查看所有分支,本地和远程
git branch -a
//设置本地与远程分支对应关系
git branch --set-upstream-to origin/分支名
//创建分支
git checkout -b dev // 基于本地创建分支
git checkout -b dev origin/dev // 基于远程分支创建本地分支
//参数 -b 命令相当于
git branch dev // 创建分支
git checkout dev // 切换分支
//重命名分支
git branch -m new-name
git branch -m old-name new-name
git status:显示存储库和暂存区的状态
//git status命令验证在下一次提交中排队等待暂存的文件是否存在。它突出显示所有添加、修改和/或删除的文件及其绝对路径。
//此命令对Git工作流程(第一步)至关重要,因为它显示存储库文件的当前状态(已修改和未跟踪)。
git status
git log:显示提交历史
//git log命令显示 git 存储库的历史记录。它为 git 用户提供了已实施的存储库更改的预览。此类更改包括提交更改、作者和日期。
//显示提交历史
//对于当前活动分支的提交历史:
git log
//过滤 Git 日志
//对于 branch_22 上不存在的branch_11的提交历史。
git log branch_22..branch_11
//注意双点语法的使用(..) -排除的意思。
//按作者过滤日志信息:
git log --author=author_name
//以一行的形式查看
git log --oneline
//以树状形式显示
git log --all --graph --decorate --oneline
git checkout:在分支之间切换
//大多数软件开发项目都涉及团队合作。在这种情况下,创建了几个特性和开发分支。当你想在分支之间成功切换时, git checkout命令很有用。
//切换到现有分支
//要切换到另一个现有分支并从当前目录预览它,请执行:
git checkout [分支名称]
//要创建并切换到新分支,请执行:
git checkout -b new-branch
git pull:下载并合并 Git 仓库
//查看本地分支和远程分支对应关系
git branch -vv
//拉取代码解决冲突方式:
#一:将远程的代码先拉取到本地的临时分支 tmp,然后手动的进行合并merge。掌控代码
git branch -b tmp origin/tmp // 基于远程的分支新建本地分支
git pull origin dev-person:tmp
git checkout tmp
git diff tmp
git merge tmp
//如果有冲突,合并冲突后,再git add ,git commit
#二:使用pull直接与本地代码merge
//假设你的远程仓库名字是origin,要拉取的远程分支是develop,要合并到的本地分支是master,那么命令如下:
//将指定远程分支拉取到指定的本地分支合并(注意:pull是远程在前本地在后,push相反)
//<远程分支名>:<本地分支名>
git pull origin develop:master
//拉取指定分支合并到当前分支
git pull origin 分支名
#三(推荐):本地建一个开发目录和仓库目录
#思路:开发目录是与git隔离,仓库目录用来拉去最新的代码,每次提交和更新本地开发代码,通过代码对比工具,将代码对比到仓库目录,然后提交。
git fetch:从远程获取代码库
//git fetch之后再实用git merge 进行合并操作
git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
//如果只想取回特定分支的更新,可以指定分支名
git fetch <远程主机名> <分支名> //注意之间有空格
//取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态
//我们可以在本地通过它查看刚取回的更新信息:
git log -p FETCH_HEAD
//之后合并到本地的代码仓,需要实用merge 命令
git merge FETCH_HEAD
git merge :合并分支
#合并步骤:
//进入要合并的分支(如开发分支dev 合并到master,则进入master目录)
git checkout master
git pull
//查看所有分支是否都pull下来了
git branch -a
//使用merge合并开发分支
git merge 分支名
//有冲突的话,通过IDE解决冲突,解决后,将冲突文件提交暂存区
git add 冲突文件
//提交merge之后的结果
git commit -m "merge develop"
//本地仓库代码提交远程仓库
git push
git push:使用本地提交更新远程分支
//git push命令使远程存储库分支能够接收本地分支提交。
//当本地存储库领先于(更多更新)远程存储库时,我们使用此命令。它使远程存储库与本地存储库中的新更改保持同步。
//将本地当前分支 推送到 与本地当前分支同名的远程分支上
git push
//将本地当前分支 推送到 与本地当前分支同名的远程分支上:
git push origin branch-name
//将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反)
git push origin <本地分支名>:<远程分支名>
将本地分支与远程同名分支相关联
git push --set-upstream origin <本地分支名>
或者
//创建远程同名分支并关联
#git push -u origin <本地分支名>
//创建/修改关联关系:指定分支对应关系
#git push -u origin <本地分支名>:<远程分支名>
//git push操作错误提示
//https://blog.csdn.net/Relinane/article/details/131502462
网友评论