基础命令
Push:
1.在github上新建一个repo。
2.将网页上提供的代码粘贴到terminal中
3.git push origin master(只有一个branch)
git push –all origin (有很多branch)
Pull:
1.进入要克隆的专案网址
2.点击clone/download,复制githu提供的网址
3.终端输入git clone 上一步复制的网址
ps:
1.添加上游专案
1)git remote remove origin :删掉远程的分支
2)git remote:查看远程文件
3)git remote -v :查看远程网址
4)git remote add xxxx(写自己改的名字) + git网址 :添加分支
5)ls -al:查看本地所有文件夹
然后在拉最新的develop分支的指令如下:
4)git fetch xxxx(就是上一步自己改过的名字)
git fetch origin 远程分支名x:本地分支名x
5)git checkout 自己分支的名字(不能在develop这个分支上写代码)
每一次建立新功能时,都先建立一个分支,命名规则如下:ID-简易功能描述
eg:git checkout -b shin-devise
从github上 pull下来某个专案的代码
1)先回到柱分支 : ~/DesignDeck/develop
2)在分支上操作 git pull project develop 这样就把最新的专案代码copy到本地电脑中了
这里的project指的是远程网址上的:“project” https://github.com/DesignDeckTeam/DesignDeck.git
这里的project下的分支中名为develop的代码
stash
- git stash save
- git stash show
- git stash drop
- git stash pop
- git stash apply
- git stash list –date=short
cherry-pick
git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick了。
就是对已经存在的commit 进行 再次提交;
简单用法:
1 | git cherry-pick <commit id> |
注意:当执行完 cherry-pick 以后,将会 生成一个新的提交;这个新的提交的哈希值和原来的不同,但标识名 一样;
例如:
$ git checkout old_cc
$ git cherry-pick 38361a68 # 这个 38361a68 号码,位于:
$ git log
commit 38361a68138140827b31b72f8bbfd88b3705d77a
- 如果顺利,就会正常提交。结果:
Finished one cherry-pick.
On branch old_cc
Your branch is ahead of ‘origin/old_cc’ by 3 commits.
- 如果在cherry-pick 的过程中出现了冲突
Automatic cherry-pick failed. After resolving the conflicts,
mark the corrected paths with ‘git add
and commit the result with:
1 | $ git commit -c 15a2b6c61927e5aed6718de89ad9dafba939a90b |
就跟普通的冲突一样,手工解决:
2.1
1 | $ git status # 看哪些文件出现冲突 |
both modified: app/models/user.rb
2.2
1 | $ vim app/models/user.rb # 手动解决它。 |
2.3
1 | $ git add app/models/user.rb |
2.4
1 | $ git commit -c <新的commit号码> |
更多命令
1.查看已提交commit改动:
1 | $ git diff COMMIT^! |
2.在branchA上merge branchB
1 | $ git merge branch-B |
3.为某个commit 创建patch 文件
1 | $ git format-patch -1 <sha> |
4.应用patch文件(必须除了改动以外其他都一样才能应用成功)
1 | $ git apply <path_file> |