一、新建远程仓库 :
方法一: 只是新建了远端仓库,本地 没有 关联
curl -u 'username'https://api.github.com/user/repos-d '{"name":"RepoName"}'
方法二 : 新建仓库 并且 关联
A:新建----
1.在本地新建一个文件夹(lxqGitTest1) 2.在网页版的github中新建一个项目(图中链接) 3.利用命令【git remote add origin 地址 】将本地与线上关联
B:关联------
1. git remote set-url origin https://github.com/xueqiliu/lxq.git 更改项目地址
2.git remote -v 查看远程仓库信息
正确的实例:新建,init,-v查看远程是否关联,关联命令,-v查看,已经关联 (PS:只能使用一次,如果已经关联过,就会出现远端已经存在的提示,绿色框中的)
二、Git的基本工作流程如下:
(【绿色的是暂存区,红色是工作区】)
备注 : 设置命令别名 : git config --global alias.st status (git st 即可)global全局 Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:
------------------------更新 ----------------
问题:push和pull 的时候总需要输入账号密码,怎么解决?
答:
1. git config--global credential.helper cache 设置记住密码(默认15分钟):
2. git config credential.helper 'cache --timeout=3600' 自己设置时间
3. git config--global credential.helper store 长期存储密码
4.http://yourname:[email protected]/name/project.git 增加远程地址的时候带上密码也是可以的
执行后会 在.gitconfig中会多出来 [credential] helper=store
ps : 如果你正在使用ssh而且想体验https带来的高速,那么你可以这样做:1. 切换到项目目录下 :cd xxx
2. 移除远程ssh方式的仓库地址 : git remote rm origin
3.增加https远程仓库地址git remote add origin http://yourname:[email protected]/name/project.git
----------------------------补充-------------------------------
新增源 git remote add shangguan http://gitlab.mogujie.org/shangguan/mogu-global.git
修改源 git remote set-url origin http://gitlab.mogujie.org/f2e/mogu-global.git
查看源 git remote -v
------------------------设置别名---------------
git config --global alias.st status
1. git status 查看修改了哪些文件
2. git add . 之后目标文件是在暂存区(从红色变成绿色)
3. git commit -m ‘xxx’ 提交文件(绿色的)到本地仓库(永久转储到Git目录中)
4.git push 将本地版本库推送到远程版本库(第一次要设置)
5. git commit -a -m ‘xx’ 把红的绿的都提交[但是必须都暂存过至少一次,否则不识别]
6. git reset HEAD test2文件名 从绿色变回成红色
7. git checkout file 从红色的变成没有,跟本地一样
8.git diff 比较红色和绿色之间的区别
9. git diff --cached 比较绿色的和提交过的
10. git diff HEAD 比较红色和上次提交的差异
PS:push过程中 第一次的时候要设置 【git push --set-upstream origin test】
三、查看历史提交记录等 :
1. git log --stat 查看每次提交的粗略内容
2. git log -p 用来显示每次提交的内容差异
3. git log -n 查看最近n次提交
4. git log 文件名 某个文件的提交历史
5. git show 0bce78b 查看某次提交的改动
6.git blame 文件名 查看目前文件的每一行是哪个提交最后改动的
7.git log -1 HEAD 文件名 查看文件的最后提交历史
四、回退版本
1. git reset HEAD^ 回退到上一个版本(本地)
2. git reset --hard origin/master 回退到和远程master分支一样(本地没有push)
两种情况:
1.没有push
git reset [--soft | --mixed | --hard origin/master
默认mixed: 保留源码,只将git commit和index信息回退
--soft:保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
--hard:源码,commit和index 都回退到某个版本.(注意,这种方式是改变本地代码源码)
如果在push后使用 reset --hard 回退代码到某个版本,由于你线上的代码,commit,index都没有变,当你把本地代码修改完提交的时候你会发现全是冲突.....
所以,这种情况你要使用下面的方式
2.已经push:回退本地代码也想同时回退线上代码,回滚到某个指定的版本,线上线下保持一致
git revert 版本号
git push
分支管理
git branch 列出本地所有分支
git branch -a 列出本地和远程
git branch -r 列出远程所有分支
git branch fenzhi 创建分支 wxj
git checkout -b fenzhi 创建+切换至
git checkout fenzhi 切换分支
git merge fenzhi 合并某分支到当前分支
git branch -D fenzhi 删除未合并的分支
git branch -d fenzhi 删除已合并的分支
git push origin fenzhi 提交远程分支
五、删除文件
删除文件
rm从工作目录中删除指定文件,但不从暂存区域移除
git rm从版本库中删除该文件 git rm后提交 git rm test.txt git commit -m ‘remove text.txt'
git rm --cached ...:仅仅将文件从暂存区域中移除(其状态变为未跟踪),不对该文件进行其它操作
git rm -f 强制删除
git rm -r 递归删除(用于删除目录)
git clean 清除未跟踪文件
git clean -n 显示将要清除的文
git clean -f 强制清除文件(不包括目录)
git clean -df 强制清除所有文件和目录
参考链接: http://www.jianshu.com/p/bcd155258985