命令
clone fetch pull post
- git clone https://github.com/coder352/test.git
- 在远程项目中增加一个test.txt的文件,写入”add some texts”
- cd test/
- git fetch
- git log –oneline –decorate –graph –all:显示当前分支没有指向fetch后的commit,需要更新
- git merge origin/master:产生一个fastforword的merge
- git lol:HEAD已经指向了最新的提交
- vim test.txt:编辑本地文件,添加一行”add some local texts”
- git add test.txt
- git commit -m “add some local texts in test.txt”
- 然后在github的项目中的test.txt中再添加”add some remote”,
- git push:提示服务器有一些本地没有的历史记录,可能会覆盖
- git pull:实际上是fetch 和 merge的合并,但是有冲突
- vim test.txt:把不需要的数据删掉,保存起来
- git add test.txt
- git commit:不修改提交信息,直接退出,本地历史就是最新的
- git push
- 服务器上的和本地上的就相同了
- 测试能分享的带注解的tag
- git tag -a V0 -m”tag for v0”
- git push:默认不把tag推送到远程仓库中的
- git push –tags:就能把刚才创建的tag放到github上,并且能看到
- 在远程仓库中创建一个新的分支:feacher,并且和master切换一下,最后切换回master
- git pull:获取代码仓库最新的数据
- 也可以用 git pull origin feacher:只更新feacher分支
- 同样git fetch origin feacher:也可以,只是服务器有更新时,要手动merge一下
- vim test.txt:添加一行”add some texts on master”
- git add test.txt
- git commit -m “add some texts on master”
- git checkout feacher
- git push origin master:将master分支单独提交到服务器上
- 想把本地feacher分支删掉,然后把服务器上的feacher也删掉
- git checkout master
- git branch -d feacher:删掉分支,在本地
- git push –delete origin feacher:删除服务器上的分支
- 还有一种方式删除远程的分支
- git push origin :feacher:推送一个空的分支替代服务器上的分支
相关设置
GitHub上fork项目
- git checkout -b feature
- vim test.txt:添加”add some feature texts”
- git add test.txt
- git commit -m “add some feature texts”
创建自己的Github项目 以shellscript为例
SSH keys
生成密钥对
- cd ~/.ssh
- ssh-keygen -t rsa -C “352111644@qq.com”
- 提示输入一个保存key的路径,默认(/c/Users/Administrator/.ssh/id_rsa),修改为github_id_rsa,因为已经有Mininet的公钥占了
- 提示输入密码,输入SSH的密码,而不是GitHub的登陆密码,可以相同,也可以再想一个新的密码,(可以不输入)
- 确认密码
- 用ssh-agent保存SSH登陆密码,这样就不用每次都输入密码
- ssh-agent bash //先执行这句换,否则可能会报Could not open a connection to your authentication agent的 错误
- //eval “$(ssh-agent -s)” //Linux输入
- eval “ssh-agent -s” //Windows用户输入
- ssh-add ~/.ssh/id_rsa
- 输入SSH的密码,然后就保存起来了
添加公钥到你的github帐户
- vim ~/.ssh/github_id_rsa.pub //将里面的keys放到github中即可
- 验证下这个key是不是正常工作
- ssh -T git@github.com 在项目仓库中输入
- 输入SSH的密码
- 显示”Hi code352! You have successfully authenticated”,就算完成了
修改你本地的ssh remote url. 不用https协议,改用git 协议
- git remote -v 可以看到是https协议
- 你可以使用浏览器登陆你的github,将下载链接那里的HTTPS改为SSH在上面可以看到你的ssh协议相应的url。类似如下:
- git@github.com:coder352/shellscript.git
- 这时,你可以使用 git remote set-url 来调整你的url
- git remote set-url origin git@github.com:coder352/shellscript.git
- git remote -v
- 最好git clone 的时候就是用ssh的
上传Github
- echo “# jvim” >> README.md
- git init
- git add README.md
- git commit -m “first commit”
- git remote add origin https://github.com/coder352/jvim.git
- git push -u origin master
Init
- 编写README.md
- 编写.gitignore 下面是做简单的去除临时文件
*~
- cd shellscript
- git init
- git config –global user.email “352111644@qq.com”
- git config –global user.name “coder352”
- git add . 全部文件git上去
- git commit -m “first commit”
- git remote add origin https://github.com/coder352/shellscript.git
- git push -u origin master
update
- 修改一些文件
- git status 显示红色的修改还没添加到库
- git add xx.md 将上面显示修改的文件重新添加一下
- git status 显示绿色的还没commit
- git push -u origin master
合作项目
clone 并查看分支
- git clone …..
- git branch 查看分支
- git branch -a 查看远程分支
- git branch jrp 创建新的分支
- git checkout jrp 切换分支
Pull Request
- fork 一个项目
- clone 到本地
- 修改,git push
- push request