常用基本命令
以下13个命令基本上可以解决开发中遇到的绝大部分问题
1. git clone 代码地址
2. git add 代码路径; 将修改添加到暂存区
3. git commit 可选参数(-a -m)
-a 类似于执行git add
-m 用于书写描述内容
git commit -am '将修改内容直接提交到本地仓库'
4. git push 将本地仓库代码提交到远程仓库
5. git pull 拉取远程仓库最新代码
6. git stash save 名称
7. git stash pop / git stash apply 名称对应的stash index, git stash list查看
8. git stash clear 清空所有存储的修改记录
9. git branch -a 查看当前的分支情况 *代表所处的分支
10.git checkout -b 分支名称; 从当前分支代码内容为基础代码创建新的分支
11.git checkout 分支名称;切换到对应的分支去
12.git pull origin 分支名称
13.git push origin 分支名称
下面会对以上命令做大致的讲解
代码冲突了怎么办
工作中应该经常遇到代码冲突,有些人使用的步骤是
- git pull 先拉取代码
- git commit 然后提交代码到本地仓库
- git push 最后将本地仓库代码推送到远程仓库
这样的使用是没有问题的,但是如果你本地修改了代码A,其它人也修改了代码A
而且git没有办法帮你做自动合并的时候会提示你 git pull failed.
这个时候我们可以使用下面的办法
比如我有以下代码,由于都修改了pom.xml,pull失败此时
1. git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: pom.xml
new file: testStash.txt
2. git stash save testStash-1
作用是将本地的所有修改**存储起来**同时清空工作区这时候我们的工作目录是干净的可以git pull代码
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
3. git stash list**,列举出来存储了哪些修改
stash@{0}: On master: testStash-1
4. git stash apply stash@{0}
或则
4. git stash pop stash@{0}
这2个命令的区别是第一个将之前的修改应用到本地,不删除stash list 里面的记录
第二个应用的同事会删除git stash list里面的记录
注意
由于在之前拉取了代码到本地,这个命令可能会产生both modify的数据,git status可以查看
both modify数据,冲突代码请求解决后在提交
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: testStash.txt
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: pom.xml
后续执行git commit -> git push 就不会出错了
这里 git stash 的应用场景还有很多比如
- 我现在正在 app-210版本开发但是测试突然跟我说生产版本200出现了BUG叫我去排查这个时候我本地有很多修改的代码也不能提交,本地工作区不是clean状态不方便切换到其它分支怎么办,这时候就可以使用git stash
- 由于冲突拉取代码,切换分支乱整导致代码全部乱套,我想全部清理掉就可以执行git stash save tag,然后在 git stash clear 对应的tag 类似的使用场景还有很多
5. git stash clear
如果我们想将stash 存储的所有修改全部删除就可以执行这个
分支怎么使用
1. 查看分支 git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
* 表示我们现在所处的分支为master
所有的分支也只有master
2. 从当前分支复制一份创建新分支 git checkout -b dev
表示从我们当前的master状态下拉取代码创建分支dev,同时切换到dev分支
git branch -a
* dev
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
当创建好了dev分支后,我们可以使用git checkout master切换到master同理可以切换到dev
3. 提交改分支代码 git push origin dev
其中 git pull origin dev 其它的使用命令都是一样的