git客户端工具:git 和 TortoiseGit
git下载地址:https://git-scm.com/downloads
TortoiseGit下载地址:https://download.tortoisegit.org/tgit/
一:下载并且安装git工具
https://gitforwindows.org/
二:生成ssh key
ssh-keygen -t rsa -C "3185017028@qq.com"
三:把key添加到github上。
Settings-->SSH and GPG key
四:验证是否添加成功。如果展示Hi AbertLi! You've successfully authenticated, but GitHub does not provide shell access.表示添加成功。
ssh -T git@github.com
五:配置git里面的config
//查
git config --global --list
git config --global user.name
//增
git config --global --add user.name jianan
//删
git config --global --unset user.name
//改
git config --global user.name jianan
//配置name和email方式二
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
六:进入要上传的仓库,右键git bash,添加远程地址:
Github上的远程仓库地址:git@github.com:AbertLi/AndroidStudyProject.git
本地项目的文件夹名是:AndroidProject
git init
git add AndroidProject
git commit -m "AndroidProject"
git remote add origin git@github.com:AbertLi/AndroidStudyProject.git
git push -u origin master
然后到github上面去看看是否有上传代码成功
七:从远程仓库拉去项目
git@github.com:AbertLi/testProject.git是远程仓库的地址
git clone git@github.com:AbertLi/testProject.git
八:pull本地代码。这个功能跟svn的Update效果一样。
git pull
九:把自己更改的代码添加到HEAD中,最后提交到git远程仓库里面。
git add <filename> //fileName就是要添加的文件和文件夹,把文件添加到HEAD中
git add* //或者这样吧文件添加到HEAD中,除了在文件或者文件夹前面带点的文件
git add. //添加文件夹内所有的文件
git commit -m "对提交的代码进行说明。"
git push origin 分支名字 //代码从HEAD提交到远程仓库
git push origin <branch> //或者这样写也可以,代码从HEAD提交到远程仓库
git push origin master:refs/for/rom/master //示例
十:创建一个叫做"feature_x"的分支:
git checkout -b feature_x //创建分支
十一:查看分支
git branch //查看本地分支。
git branch -a //查看远程库分支和本地分支。
十二:推送本地分支到远程仓库
git push --set -upstream origin 分支名
十三:切换分支
git branch //查看本地分支,同时可以看到正在使用的分支
git checkout 某个分支的名字 //切换到指定的分支。
十四:删除分支-->先查找分支然后在删除指定分支
git branch //先查找分支
git checkout -d 分支名字 //删除指定分支。
十五:将远程git仓库里的指定分支拉取到本地并且切换到这分分支(本地不存在的分支)
git checkout -b 本地分支名 origin/远程分支名
fatal: Cannot update paths and switch to branch 'dev2' at the same time.
Did you intend to checkout 'origin/dev2' which can not be resolved as commit? //表示拉取不成功
如果拉取不成功,执行以下命令
git fetch
然后在在执行
git checkout -b 本地分支名 origin/远程分支名
十六:合并分支
要更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
git merge <branch>
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>
十七:标签
为软件发布创建标签是推荐的。这个概念早已存在,在 SVN 中也有。你可以执行如下命令创建一个叫做 1.0.0 的标签:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID:
git log
你也可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性。
十八:替换本地改动
假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动:
git checkout --filename
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master
十九:实用小贴士
内建的图形化 git:
gitk
彩色的 git 输出:
git config color.ui true
显示历史记录时,每个提交的信息只显示一行:
git config format.pretty oneline
交互式添加文件到暂存区:
git add -i
20:git让项目回滚到指定的版本。
$ git log -3 //查看log
commit 4dc08bb8996a6ee02f
Author: Mark <xxx@xx.com>
Date: Wed Sep 7 08:08:53 2016 +0800
xxxxx
commit 9cac9ba76574da2167
Author: xxx<xx@qq.com>
Date: Tue Sep 6 22:18:59 2016 +0800
improved the requst
commit e377f60e28c8b84158
Author: xxx<xxx@qq.com>
Date: Tue Sep 6 14:42:44 2016 +0800
changed the password from empty to max123
回滚到指定的版本
git reset --hard e377f60e28c8b84158
换基
git pull --rebase
强制提交
git push -f origin master
21:git修改提交的备注内容
(1)执行以下命令进入一个备注文件中使用Vi进行操作
git commit --amend
(2)操作完成后后wq保存并且退出。或者先shift+:输入w!保存,然后输入q!退出编辑的文件。
(3)
git rebase --continue
(4)强制push到gitlab上。
git push --force