git 终端命令
原文:git终端命令
初始仓库
从本地关联远端仓库
git remote add origin https://github.com/username/reponame.git
// 首次推送 master 分支所有内容
git push -u origin master
从远端克隆仓库到本地
git clone git@github.com:michaelliao/gitskills.git
注:GitHub给出的地址不止一个,还可以用 https://github.com/michaelliao/gitskills.git 这样的地址。实际上,Git支持多种协议,默认的 git:// 使用ssh,但也可以使用 https 等其他协议。
建立本地分支和远程分支的联系
git branch --set-upstream branch-name origin/branch-name
分支管理
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
1、创建分支
创建并切换到分支
git checkout -b 新建分支名
相当于:
git branch 新建分支
git checkout 新建分支
2、查看分支
git branch
会列出所有分支,当前分支前用 * 表示
3、切换分支
git checkout 分支名
4、合并分支
git merge 想要合并进当前分支的分支
5、删除分支
git branch -d 将被删除的分支
强行删除一个未被合并的分支:
git branch -D 将被删除的分支
代码上传
1、下拉
git pull
2、提交
git add 被修改的文件(或 .)
git commit -m "备注的信息"
3、上传
git push
解决冲突
1、查看冲突的文件
git status
打开冲突文件,修改 <<<<<<< ======= >>>>> 中的冲突部分,再提交
2、查看分支合并图
git log --graph
3、bug 分支(stash)
当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交.
并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
幸好,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
git stash
现在,用git status查看工作区,就是干净的(除非有没有被Git管理的文件),因此可以放心地创建分支来修复bug。
bug 修改完成后,要继续之前打断的工作。
查看被保存的现场:
git stash list
// stash@{0}: WIP on dev: 6224937 add merge
恢复现场:
git stash apply // 恢复
git stash drop // 删除记录
相当于:
git stash list
当有多个 stash 时,可以恢复到指定的:
git stash apply stash@{0}