常用Git指令

97 阅读3分钟

Git是每一位程序员都需要掌握工具,虽说git有很多命令,但是其实日常工作中常用的并不多,所以这篇文章主要从日常的场景出发,讲一些git的操作技巧。

先从到一个新项目开始:

- 到了新的项目,首先第一步则是需要从数据仓库中拉取新的代码:git clone ..... 
- 拉取下来代码后,需要检查一下项目的分支:git branch -a // git branch-r
- 检查完分支之后需要切换至开发的分支:git checkout '分支名'
- 一顿操作后开始写代码,写完之后需要将变更添加到暂存区:git add .
- 添加之后准备小步提交,需要看下文件修改的状态:git status
- 好啦,全部都添加好后可以进行小步提交了,首先添加到本地仓库中:git commit-m[message].
- 最后一步:git push

以上是一气呵成写完代码就提交,并且代码与他人代码不冲突的情况,日常工作中当然不会那么简单,那么如果遇到需要其他的“棘手场景”该怎么办呢?

场景一:

当你的代码写了一半又来了紧急的新需求,但这一半的代码既不能删除也不能提交,此时我们可以用到的命令就是git stash

保存当前工作状态:git stash save "work in progress for xxx
你可以安心切换到其他分支完成新需求:git checkout -b new-branch
完成后其他任务后,可切回分支查看暂存的工作状态列表:git stash list
恢复任务:`git stash apply stash@{0} 

场景二:

当你提交了代码,发现还有一个文件忘记一起提交了。

将漏掉的文件添加到暂存区:git add file.xxx
修改上次提交:git commit --amend 
此时会打开编辑器,在编辑器中还能修改commit的message,如果不需要修改message吗,只是想添加漏掉的文件,那么使用:git commit --amend --no-edit 即可

场景三:

当你准备提交代码,输入git status后,发现远程仓库有修改

- 执行git pull --rebase
- 如果文件有冲突:执行 `git status` 命令来找出那些包含冲突的文件。
- 打开冲突的文件并解决冲突:冲突的部分将在文件中被标记出来,类似下面的样子:

    ```
    markdownCopy code
    <<<<<<< HEAD
    你的改动
    =======
    其他人的改动
    >>>>>>> commit-id
    ```

    你需要手动决定要保留哪一部分的修改,然后删除其他部分以及冲突标记(`<<<<<<<`, `=======`, `>>>>>>>`)。

- 解决完冲突后,将这些文件添加到暂存区: git add filename
- 并进行提交:git rebase --continue

场景四:

当你准备上线,准备将某一分支的代码提交到用于上线的分支上时

- 首先,创建新的分支:`git branch new-branch-name`
- 切换到新创建的分支:`git checkout new-branch-name`
- 找到你想要挑选的commit的ID。你可以通过 `git log` 命令来查看commit历史,找到你需要的commit的ID。
- 然后,在你当前的分支中执行 `git cherry-pick commit-id` 命令。这里的commit-id就是你想要挑选的commit的ID。
- 如果在应用commit的过程中出现了冲突,你需要手动解决冲突(参考场景三)。