世界只因有你2017-05-02 09:43:43
作为一个程序员,你的方法有点low。建议大致看看git的教程,常用的命令就几个不是很复杂,实在不行可以使用git版本小乌龟(图形界面的git工具不懂百度一下)
永远记得git是三个文件(本地--本地隐藏文件.git--远程仓库)
回正题,先pull再add然后commit最后push稍后给你一个git命令汇总
1. 安装完成后,在开始菜单里找到“Git”->“Git Bash”
2. git config --global user.name "Your Name"
git config --global user.email "email@example.com"
3. cd F: (打开F盘)
mkdir <name> (创建子目录)
pwd (显示当前目录)
4. git init (把这个目录变成Git可以管理的仓库)
5. git add <file>
6. git commit -m "说明"
7. git status (仓库当前的状态)
8. git diff (查看不同)
9. git log [--pretty=oneline {缩略版,可选}] (查看历史记录)
10. git reset --hard HEAD^ (回退到上一个版本,HEAD后可以是 commit_id)
11. git reflog (用来记录你的每一次命令,找到commit_id回到未来某个版本)
12. git diff HEAD -- <file> (查看工作区和版本库里面最新版本的区别)
13. git checkout -- <file> (用版本库里的版本替换工作区的版本,无论工作区是修改还是删除)
14. git reset HEAD <file> (把暂存区的修改撤销掉(unstage),重新放回工作区. 用HEAD时,表示最新的版本)
15. git rm (用于删除一个文件)
16. ssh-keygen -t rsa -C "youremail@example.com" (创建SSH Key)
17. git remote add origin git@github.com:Bruce333/other.git (关联github远程库)
18. git push -u origin master/git push origin master
(推送到远程库,第一次用含有 -u 的命令,推送master分支的所有内容,此后用后面的命令推送最新修改)
19. git clone git@github.com:Bruce333/other.git (克隆一个本地库)
20. git checkout -b dev
(创建dev分支,然后切换到dev分支,相当于以下两条命令:git branch dev[创建分支]/git checkout dev[切换分支])
21. git branch (列出所有分支,当前分支前面会标一个*号)
22. git checkout master (切换到master分支)
23. git merge dev (合并指定分支到当前分支)
24. git branch -d dev (删除dev分支)
25. git log --graph (查看分支合并图)
26. git merge --no-ff -m "merge with no-ff" dev
(通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息;--no-ff表示禁用Fast forward,用普通模式合并,合并后的历史有分支,能看出来曾经做过合并;-m参数,把commit描述写进去)
27. git stash (把当前工作现场“储藏”起来,等以后恢复现场后继续工作)
28. git stash list (查看工作现场) / git stash apply stash@{0} ()
29. git stash pop (恢复的同时把stash内容也删了,相当于:git stash apply[恢复]/git stash drop[删除])
30. git branch -D <name> (强行删除一个没有被合并过的分支)
31. git remote (查看远程库的信息) / git remote -v (显示更详细的信息)
32. git checkout -b branch-name origin/branch-name (在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致)
33. 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
34. git pull
(把最新的提交抓下来;如果提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,
用命令git branch --set-upstream branch-name origin/branch-name)
35. git tag <name> <commit id 可无>
(打一个新标签,默认标签是打在最新提交的commit上的;找到历史提交的commit id,可以给历史版本打标签)
36. git show <tagname> (查看标签信息)
37. git tag (查看所有标签)
38. git tag -a <tagname> -m "blablabla..." (指定标签信息)
39. git tag -s <tagname> -m "blablabla..." (用PGP签名标签)
40. git tag -d <name> (删除标签)
41. git push origin <tagname> (推送某个标签到远程)
42. git push origin --tags (一次性推送全部尚未推送到远程的本地标签)
43. git tag -d <tagname> (删除一个本地标签)
44. git push origin :refs/tags/<tagname> (删除一个远程标签)
45. git config --global color.ui true (让Git适当地显示不同的颜色)
46. 忽略某些文件时,需要编写.gitignore;.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理
47. git config --global alias.st status
(告诉Git,以后st就表示status,配置别名;加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用;每个仓库的Git配置文件都放在.git/config文件中,别名就在[alias]后面,要删除别名,直接把对应的行删掉即可;而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中)