在我们的实际开发中不可避免的会遇到代码管理,下面简单的描述下自己在使用git中的命令
git clone 地址
git checkout -b 分支名称 git checkout 分支名意为切换分支,加上-b参数为创建并切换到该分支
git branch 查看所有分支,分支前带有*为当前所在分支
git branch -a 查看远程分支
git branch -vv 查看本地和远程的哪个分支连接了
git log 查看提交日志
git branch --set-upstream dev origin/远程分支 将本地分支与远程分支进行链接
git diff 比较暂存区和工作区的差别(所有文件的更改均会列出)
git diff --文件名 列出指定文件的更改
git diff master dev --index.html 比较index.html文件在master和dev两个分支的变化
git diff 分之一commit_id 分支二commit_id 比较两个分支上两个commit的变化
git reset --hard commit_id 版本回退到具体的某一次提交
一般的代码提交流程
首先执行git pull 拉取远程仓库中的代码以免冲突,覆盖情况的发生然后使用git status 查看文件的状态,即我们改动了哪些文件,然后git add 进行提交,此时在执行git status 则文件变成了绿色,然后执行git commit -m '本次提交的描述'此时将代码提交到了本地仓库然后执行git push
git pull 拉取远程更新
git status 查看当前分支状态
git add 提交文件
git commit -m '提交描述' 将文件提交到本地仓库
git push 推送到远程
git push 远程主机名 当前分支名:远程分支名 将本地推送到远程指定分支上具体命令例如 git push origin dev:dex origin是远程仓库的别名 代替xxx.git的地址
在我们集体开发时,有可能一个分支有多名同事在开发,当A进行push之后,B要更新也就是(git pull)有可能会出现以下情况
$ git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0)
Unpacking objects: 100% (3/3), done.
From github.com:michaelliao/learngit
fc38031..291bea8 dev -> origin/dev
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream dev origin/<branch>
这个失败的原因是本地分支没有与远程dev分支链接根据提示使用
git branch --set-upstream dev origin/远程分支
git删除远程分支 :git push origin --delete 远程分知名
git删除本地分支:先git checkout maser 然后在执行git branch -d 本地要删除的分支名