Git生成私钥
查看单前用户
git config user.name
git config user.email
配置自己的身份,这样在提交代码的时候就能知道是谁提交的:
git config --global user.name "limengfan"
git config --global user.email "limengfan@qq.com"
查看是否已经有了ssh密钥
cd ~/.ssh
ls
如果没有密钥则不会有此文件夹,有则备份删除
生存密钥
$ ssh-keygen -t rsa -C "limengfan@qq.com" 按3个回车,密码为空。
最后得到了两个文件
id_rsa和id_rsa.pub
基本操作
1.创建仓库
使用当前目录作为Git仓库,我们只需使它初始化。
git init
使用我们指定目录作为Git仓库
git init 名称
查询代码仓库
ls -al
2.提交本地代码
添加文件到缓存中
git add . 添加所有
git add 文件名1 文件名2 添加单个文件
清除不要的修改文件
git checkout 文件名
从缓存中删除文件
git reset HEAD 文件名
查看添加的文件(A表示已添加的,AM表示添加后又有改动)
git status -s
将缓存区内容提交到仓库中
提交这里要在-m参数后面加上提交参数,不然会被认为不合法不能提交.
git commit -m "提交测试"
将提交代码推到远程服务器
git push
3.以查看在你上次提交之后是否有修改
git status
4.查看执行 git status 的结果的详细信息
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
注意:git status 显示你上次提交更新后的更改或者写入缓存的改动,
而 git diff 一行一行地显示这些改动具体是啥。
7.更新本地代码
git pull
8.从现有 Git 仓库中拷贝项目
克隆repo文件到当前目录
git clone repo
克隆到指定的目录(及directory目录)
git clone repo directory
要克隆 Ruby语言的 Git代码仓库 Grit,newname指自定义克隆文件名
git clone git://github.com/schacon/grit.git newname
7.创建目录
mkdir 目录名
8.创建文件
touch 文件名
9.修改文件
vim 文件名
按键:i 光标前插入
按键:a 光标后插入
退出编辑
esc按键
保存并退出
输入wq
10.查看文件内容
cat 文件名
11.删除文件
rm 文件名
rm -f 文件名 强制删除
rm –r * 递归删除整个目录中的所有子目录和文件
12.移动或重命名文件
mv a.txt b.txt 将a.txt文件改名为b.txt
mv a.txt ./a 将a.txt文件移动到单前的a目录下
不影响当前工作,更新核心代码
# 保存工作现场(将目前还不想提交的但是已经修改的代码保存至堆栈中)
git stash
# 从远程仓库获取最新代码并自动合并到本地
git pull
# pull 命令如果有冲突,先处理冲突
# 恢复工作现场
git stash pop
分支管理(切换分支Git将还原你的工作目录到你创建分支时候的样子)
1.列出分支
git branch
# 查看全部分支
git branch -a
注:我们有一个叫做 master 的分支,并且该分支是当前分支。
git init 的时候,缺省情况下 Git 就会为你创建 master 分支。
2.创建分支命令:
git branch 分支名
3.切换分支
git checkout (branchname)
4.创建新分支并立即切换到该分支下
git checkout -b (branchname)
5.删除分支
git branch -d (branchname)
6.合并分支(你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支)
git merge 想要合并的分支名
7.将本地的分支推送到远程主机origin上的对应分支
git push origin 本地分支名:远程分支名
8.将本地的master分支推送到origin主机,同时指定origin为默认主机,以后就可以不加任何参数使用git push
git push -u origin master
# 将本地的代码提交到git仓库
**创建新版本库**(服务器)
git clone (地址)
cd guojian_mobile
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
**已存在的文件夹或 Git 仓库**(服务器)
cd existing_folder
git init
git remote rm origin // 删除关联对应的远程仓库地址
git remote add origin (地址) //添加git地址
git remote set-url origin (新地址) //修改git地址
git add .
git commit
git push -u origin master
git更换远程仓库地址
先查看关联的远程仓库地址
git remote -v
修改更新
git remote set-url origin (新地址)
git回退代码
1. 查看代码提交记录
git log
2. 将最新的3次提交全部重置,就像没有提交过一样。
git reset --hard HEAD~3
3. 回退到 38679ed709fd0a3767b79b93d0fba5bb8dd235f8 版本
git reset --hard 38679ed709fd0a3767b79b93d0fba5bb8dd235f8)
4. 查看最近的操作记录
git reflog
5.回撤后,push 提交会失败,因为当前分支的版本低于远程分支的版本,所以要想覆盖掉它,必须使用force
git push origin dev --force
git代码修复
在平时开发中,我们有时候可能会因为手误或其它原因将某些重要文件删除。如果之前有将此文件纳入到 Git 中,这时便可以利用 Git 来对误删文件进行恢复。
-
查看 Git 状态,能看到有相关提示显示
XXXX
文件已被删除git status
-
下面我们使用 Git 进行恢复被删除文件
git checkout -f
解决git pull/push每次都需要输入密码问题
如果我们git clone的下载代码的时候是连接的https://而不是git@git (ssh)的形式,当我们操作git pull/push到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁的输入账号和密码会很麻烦。
进入你的项目目录
输入命令: git config --global credential.helper store
然后你会在你本地生成一个文本,上边记录你的账号和密码。当然这些你可以不用关心。
然后你再操作一次git pull,然后它会提示你输入账号密码,这一次之后就不需要再次输入密码了。
冲突解决
//先同步了本地库和远程库,再进行文件的上传。
git pull --rebase origin master
//强制推送本地代码,结果:本地代码会覆盖线上的git仓库的代码
git push -f origin master
git强制覆盖本地代码(谨慎操作,自己本地修改未提交的代码会被覆盖)
(与git远程仓库保持一致:git reset --hard origin/master)
git fetch --all
git reset --hard origin/master //返回上一步不提交【解决冲突】
git pull
Git 本地分支与远程分支关联
git branch-set-upstream-to=origin/远程分支的名字 本地分支的名字
git branch --set-upstream-to=origin/dev dev
git操作之git commit以后想要回退方法
# 回退到上一个提交状态,并保留修改的文件
git reset --soft HEAD^
完毕
好了,我是向宇,https://xiangyu.blog.csdn.net/
一位在小公司默默奋斗的开发者,出于兴趣爱好,于是开始自习unity。最近创建了一个新栏目【你问我答
】,主要是想收集一下大家的问题,有时候一个问题可能几句话说不清楚,我就会以发布文章的形式来回答。 虽然有些问题我可能也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
我知道阁下是一位白嫖高手,但假如我说下面有个打赏按钮,那阁下又该如何应对呢?
(量力而行,力虽微,心暖人,你的支持是我创作的最大动力)