参考廖雪峰的git 教程: https://www.liaoxuefeng.com/wiki/896043488029600
建议第一次使用时先新建个文件夹试试看,不要用工作文件,出问题的话会很难过的……
sudo apt-get install git
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
新建文件readme.txt
,内容随便写
初始化一个Git仓库,使用git init
命令。
添加文件到Git仓库,分两步:
git add
,注意,可反复多次使用,添加多个文件;
git add readme.txt
添加文件夹内全部文件: git add .
git commit -m
,描述要提交的信息,完成。
git commit -m "wrote a readme file"
这里有幅图可以解释每个命令的作用:
第一步是用git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
用git status
查看状态
ssh-keygen -t rsa -C "[email protected]"
git remote add origin [email protected]:*your_account*/learngit.git
然后,把本地库的所有内容推送到远程库上
git push -u origin master
这是第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
git reset --hard HEAD^
//上一个版本
git reset --hard 1094a
//1094a:版本号
git checkout -- file
:丢弃工作区的修改: git checkout -- readme.txt
如果 git add 到暂存区
用命令git reset HEAD
可以把暂存区的修改撤销掉(unstage),重新放回工作区,然后丢弃工作区的修改: git checkout -- readme.txt
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
分支的解释:
1.
2.
创建+切换分支:git checkout -b
git checkout -b dev
用git branch
命令查看当前分支:
$ git branch
* dev
master
3. 在dev上,修改部分文件内容,比如对readme.txt
进行修改,然后提交:
git add readme.txt
git commit -m "branch test"
这是,master和dev指向就不一样了
现在,dev分支的工作完成,我们就可以切换回master分支:
$ git checkout master
Switched to branch 'master'
切换回master分支后,再查看一个readme.txt文件,改变不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变:
$ git branch
* master
6. 不使用Fast forward模式,
git merge --no-ff -m "merge with no-ff" dev
merge后就像这样:
End:Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
1、切换远程仓库地址:
方式一:修改远程仓库地址
【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。
方式二:先删除远程仓库地址,然后再添加
【git remote rm origin】 删除现有远程仓库
【git remote add origin url】添加新远程仓库
2、【git remote -v 】查看远程仓库的地址
参考:https://blog.csdn.net/yihanzhi/article/details/78801027
如果出现下面几种情况,都可以试着用这个方法:
- Saving key “~/.ssh/id_rsa” failed: No such file or directory
- Saving key “/home/username/.ssh/id_rsa” failed: Permission denied
- Saving key “/home/username/.ssh/id_rsa” failed: Is a directory
cat ~/.ssh/id_rsa.pub 查看现有是否存在ssh,且ssh是否是自己的
如果是ssh问题则在git仓库同目录 删除.ssh文件夹 (隐藏文件夹)
sudo rm -rf ~/.ssh
判断删除成功: cat ~/.ssh/id_rsa.pub
出现/.ssh/id_rsa.pub: No such file or directory
ssh-keygen -t rsa -C "[email protected]"
一路回车
error: 无法推送一些引用到 ‘[email protected]:***/***.git’
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 ‘git pull …’)。
提示:详见 ‘git push --help’ 中的 ‘Note about fast-forwards’ 小节。
原因可能是之前上传时创建的.git文件被删除或更改,或者其他人在github上提交过代码.
解决方案如下:
1.使用+master 强制更新
git push -u origin +master
2. 尽量先同步github上的代码到本地,在上面更改之后再上传
git pull origin master
(这时候会出来一个问你合并的理由,你自己看着写)
press F2 退出
git pull origin master master
然后再git push 就好了
git push -u origin master
参考: https://blog.csdn.net/qq_44919293/article/details/89451128
https://www.jianshu.com/p/28e490cd3a19
git remote rm origin
git remote add origin [email protected]:your_account/learngit.git