公司一直在用svn,然后自己想学习一下git,早晚要学嘛。记录一下自己的安装使用过程
https://git-scm.com/download/win;git下载地址。
然后一步到位安装.
记录一下:
---------------------在本地库--------------------------------------------------------------
1,运行git init初始化本地仓库,它会创建一个隐藏的文件夹。
比如在当前文件夹创建一个文件 readme.txt
2,git status 命令查看变化信息
git add <file>(e/abc/liu.txt)
3,git add -A 命令将未追踪的文件加进去
4,git status 再次查看变化信息,状态变了,说明可以commit了
5,git commit -m "提交信息的提示标记"
6,git log 执行它,就可以看到提交记录了
7,修当修改了readme.txt文件中的内容时,再用
git status 查看状态,就会有更改了
8,执行git diff 查看文件做了哪些变化,它默认跟最新的一个commit进行比较
红色(前面有减号-)表示删除,绿色(前面有加号+)表示添加。
因此,在git看来,我们是删除了原来那一行,并添加了新的两行。这在文件内容特别多的时候效果比较明显。
这个命令在以下情况可以使用:你忘记改了什么,又想知道别人发给你新版本,你想知道更改了什么)
9,git checkout -- 撤销更改,
10,再次修改并提交使用 git add -A 与 git commit -m "新增内容",并用
git log 查看日志,现在会出现提交的记录,后面是一串字符就是版本号
11,版本回退,git reset -hard 04976dd(取版本号前七位就可以了)
-------------------上面是在本地库的操作,如果想把代码传到github上,请看下面-------
1,首先要注册账户,Github
2,本地配置用户名和邮箱,使用命令git config --global user.name "你的用户名"
git config -global user.email "你的邮箱"
3,生成ssh key :
a,首先检查你的计算机有没有ssh key :输入命令 ls -al ~/.ssh
b,有就删除,没有就不做操作
c,之后输入 ssh-keygen -t rsa -C "你注册的github的用的邮箱"
敲回车三次
d,然后 ssh-agent -s
e,然后 ssh-add ~/.ssh/id_rsa
F,如果上一步出现 Could not open a connection to your authentication agent.
就输入 eval 'ssh-agent -s' ssh-add。
如果不出现的话就输入, clip < ~/.ssh/id_rsa.pub。这个相当于把ssh key复制了可以直接 ctrl v 复制到你的github账号上的setting中的 New SSH KEY的选项中
最后测试一下 ssh -T git@github.com
会出现个输入的选项,你输入 yes 就好了
4,将本地仓库和远程仓库关联
执行命令 git remote add origin 你的SSH的地址
然后,git push -u origin master 将本地仓库上传至Github的仓库并进行关联
以后想用在cmmit后同步Github 只要直接执行git push就可以.
-------------------------------更全的命令大全------------------------
- 安装完成后,在开始菜单里找到“Git”->“Git Bash”
- git config --global user.name "Your Name" git config --global user.email "email@example.com"
- cd F: (打开F盘) mkdir <name> (创建子目录) pwd (显示当前目录)
- git init (把这个目录变成Git可以管理的仓库)
- git add <file>
- git commit -m "说明"
- git status (仓库当前的状态)
- git diff (查看不同)
- git log [--pretty=oneline {缩略版,可选}] (查看历史记录)
- git reset --hard HEAD^ (回退到上一个版本,HEAD后可以是 commit_id)
- git reflog (用来记录你的每一次命令,找到commit_id回到未来某个版本)
- git diff HEAD -- <file> (查看工作区和版本库里面最新版本的区别)
- git checkout -- <file> (用版本库里的版本替换工作区的版本,无论工作区是修改还是删除)
- git reset HEAD <file> (把暂存区的修改撤销掉(unstage),重新放回工作区. 用HEAD时,表示最新的版本)
- git rm (用于删除一个文件)
- ssh-keygen -t rsa -C "youremail@example.com" (创建SSH Key)
- git remote add origin git@github.com:Bruce333/other.git (关联github远程库)
- git push -u origin master/git push origin master (推送到远程库,第一次用含有 -u 的命令,推送master分支的所有内容,此后用后面的命令推送最新修改)
- git clone git@github.com:Bruce333/other.git (克隆一个本地库)
- git checkout -b dev (创建dev分支,然后切换到dev分支,相当于以下两条命令:git branch dev[创建分支]/git checkout dev[切换分支])
- git branch (列出所有分支,当前分支前面会标一个*号)
- git checkout master (切换到master分支)
- git merge dev (合并指定分支到当前分支)
- git branch -d dev (删除dev分支)
- git log --graph (查看分支合并图)
- git merge --no-ff -m "merge with no-ff" dev (通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息;--no-ff表示禁用Fast forward,用普通模式合并,合并后的历史有分支,能看出来曾经做过合并;-m参数,把commit描述写进去)
- git stash (把当前工作现场“储藏”起来,等以后恢复现场后继续工作)
- git stash list (查看工作现场) / git stash apply stash@{0} ()
- git stash pop (恢复的同时把stash内容也删了,相当于:git stash apply[恢复]/git stash drop[删除])
- git branch -D <name> (强行删除一个没有被合并过的分支)
- git remote (查看远程库的信息) / git remote -v (显示更详细的信息)
- git checkout -b branch-name origin/branch-name (在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致)
- 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
- git pull (把最新的提交抓下来;如果提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建, 用命令git branch --set-upstream branch-name origin/branch-name)
- git tag <name> <commit id 可无> (打一个新标签,默认标签是打在最新提交的commit上的;找到历史提交的commit id,可以给历史版本打标签)
- git show <tagname> (查看标签信息)
- git tag (查看所有标签)
- git tag -a <tagname> -m "blablabla..." (指定标签信息)
- git tag -s <tagname> -m "blablabla..." (用PGP签名标签)
- git tag -d <name> (删除标签)
- git push origin <tagname> (推送某个标签到远程)
- git push origin --tags (一次性推送全部尚未推送到远程的本地标签)
- git tag -d <tagname> (删除一个本地标签)
- git push origin :refs/tags/<tagname> (删除一个远程标签)
- git config --global color.ui true (让Git适当地显示不同的颜色)
- 忽略某些文件时,需要编写.gitignore;.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理
- git config --global alias.st status (告诉Git,以后st就表示status,配置别名;加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用;每个仓库的Git配置文件都放在.git/config文件中,别名就在[alias]后面,要删除别名,直接把对应的行删掉即可;而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中)