项目代码管理,之前都是使用的SVN,git知道怎么回事,但是原理不熟悉,命令更不熟悉。这两天看了一个博客廖雪峰的官方网站,把一些常用的命令熟悉了一下,大致常用的记录在此。
git init 初始化git仓库
git add <file> 添加文件到仓库 可以一次添加多个
git commit -m “注释,改动说明” 每次修改文件后,用git add 和 git commit来提交
git diff 查看修改 修改完文件后同样适用git add <file> 和git commit来提交修改
git log 查看版本记录
git reflog 查看命令记录 可以在回退之后后悔时返回最新版本
git checkout - - file 丢弃工作区的修改
git reset HEAD file 丢弃已经保存在暂存区的修改
git rm — <file> 把文件从目录中直接删除后,git版本库中还存在,使用这个命令从版本库中删除
git checkout — <file> 不小心删错了 可以这样用版本库版本替换工作区版本
git remote add origin git@server-name:path/repo-name.git 关联一个远程仓库
git push -u origin maste 第一次推送master分支的所有内容
git push origin master 每次本地提交后,如果需要,此命令可以推送最新修改
git clone 从远端克隆一个仓库到本地
git branch 查看分支
git branch <name> 创建分支
git checkout <name> 切换分支
git checkout -b <name> 创建并切换分支
git branch -d <name> 删除分支
git merge <name> 合并分支 最好切换好主分支然后选择要合并的分支
git在合并分支时默认是使用Fast forward模式,合并后会丢失分支信息,实际中使用下面的命令
git merge —no—ff -m “xxxxxxxx” dev 普通合并模式,在合并的时候生成一个新的commit,这样就不会丢失分支历史信息
git stash, git stash list, git stash pop 临时性保存一些未完成的内容,通过list查看,通过pop恢复并删除stash内容
git branch -D <name> 强行删除一个没有合并的分支 大写D
git pull 从远程抓取最新的提交 本地合并解决冲突后 再进行推送
git push origin <branch> 推送更新到远程仓库的分支
git tag <tagName> 标签,给分支打标签 git tag 查看所有标签 git tag -d <tagName> 删除标签
多人写作的工作模式:
1 首先,可以试图用git push origin branch-name推送自己的修改;
2 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3 如果合并有冲突,则解决冲突,并在本地提交;
4 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。