1 克隆仓库
在项目开发中,需要将一个已有的项目克隆到本地:
git clone ssh://git@szv-y.github.com:0930/
2 提交到远程仓库
- 显示Git仓库中所有远程仓库(remote)的详细信息,包括它们的名称和对应的URL,有助于查看和管理Git仓库和远程仓库之间的联系
git remote -v
- 检查当前分支状态,确保了解有哪些修改和未提交修改
git status
- 添加更改到暂存区
git add path/path/path/file_X #添加单个文件 git add path/path/path/file_Z path/path/path/file_5 #添加多个文件 git add . #添加当前目录及其子目录所有文件的更改 git add -u #将所有已追踪文件的更改添加到暂存区 git add -A #将所有更改(包括新文件、已修改文件和已删除文件)添加到暂存区,相当于同时执行 git add . 和 git add -u
- 提交更改到版本库中
git commit -m "简要描述更改"
- 在推送本地更改之前。最好从远程仓库拉取最新的更改,避免冲突
git pull origin your-branch #origin:远程仓库的名称
- 解决冲突(如有)
git add path/path/conflicted/file_2 git commit -m "解决冲突"
- 推送更改到远程仓库
git push origin HEAD:your-branch
3 Git分支管理
Git的分支管理可以让项目开发人员进行并行工作,不会影响主代码库,下面是几个常用命令:
- 创建分支
git checkout -b <yourbranchname>
- 切换并查看当前分支
git checkout (yourbranch) #切换分支命令 git branch #查看当前分支
- 删除分支
git branch -d <branchname> git push origin --delete <branchname>
4 查看提交历史
- 在克隆完整个项目之后,可以使用git log命令查看提交历史。当需要查看相关路径的提交历史,可以使用:
git --no-pager log --oneline path/path/path_0 #git --no-pager <subcommand>表示不分页直接输出
- 当需要应用某一个特定的提交时,可以使用patch的方式:
git format-patch -1 <commitID>
- 可以使用git reset命令重置当前分支到特定提交
git reset --soft <commit> #只重置HEAD到指定的提交,暂存区和工作目录保持不变 git reset --mixed <commit> #重置HEAD到指定的提交,暂存区重置,但工作目录保持不变 git reset --hard <commit> #重置HEAD到指定的提交,暂存区和工作目录都重置
- 可以使用 git revert来撤销某次提交
git revert <commit>
5 拣选提交
一般情况下使用git cherry-pick
命令允许你选择特定的提交并将其应用到当前分支。它在需要从一个分支移植特定更改到另一个分支时非常有用。
git cherry-pick <commit>
git cherry-pick origin/branch
为什么不用git checkout <commit>命令呢?
可以使用 git checkout <commit> 命令来切换到一个特定的提交,但是请注意,这样做会将你的工作目录置于一个“分离头指针”(detached HEAD)状态。这意味着你不会在任何分支上,而是直接在那个特定的提交上进行操作。
6 设置上游
git branch --set-upstream-to=<remote-branch> 是一个 Git 命令,用于设置当前分支的上游分支(upstream branch)。这意味着当前分支将跟踪远程仓库中的 origin/dev 分支,使得拉取(pull)和推送(push)操作更为简便。
git branch --set-upstream-to=<remote-branch>
7 定位问题
git bisect是一个很有用的命令,用来查找哪一次代码提交引入了错误。
- 首先检查一下代码提交历史
git log --pretty=oneline
- 使用git bisect start命令启动查错
git bisect start [终点] [起点]
- 执行上面命令以后,代码库就会切换到这段范围正当中的那一次提交(二分法查找),我们需要确定这一次提交有没有问题,然后进行标识
git bisect good #本次提交没有问题 git bisect bad #本次提交未通过
- 接下来,不断重复这个过程,直到成功找到出问题的那一次提交为止,这时。Git会给出如下提示:
<commit id> is the first bad commit
- 然后使用如下命令退出查错
git bisect reset