Thread (3 messages) 3 messages, 3 authors, 2016-06-15

Re: Best single user practice

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:49:44

Maaartin [off-list ref] writes:
I've started using git maybe one month ago, and I'd like to use it for many 
things including some one-man projects, browser settings backups, and such 
things. So I always do a local git init, ssh to my server and create a repo 
there. I copy the .git/config from a working project, and change the remote 
URL. It all works, but it's not perfect.

- Is it not possible to create a remote repository from my own computer without 
ssh?
No, it isn't.  "git push --create" / remote "git init" is one of
requested features for quite some time, but it isn't yet implemented.

IIRC the problem is that without being able to log in to remote
machine there are situations when yoy can't resolve problems without
it.


You can always use "ssh <user>@<machine> git init <directory>" (though
it is not a solution in your case, at least not as given, because "git
init <directory>" is quite new invention).
- There's only version 1.5.4.3 on the server and I don't want to update it 
unless strongly recommended so. Should I?
Well, with 1.5.4.3 you can't use "smart" HTTP protocol, but git is
deliberately interoperable between different versions of client and
server software.
 
- Because of the low version, I can't use "git init --bare" on the server. So I 
create an usual depository and change the configuration to bare=true. Is it OK 
(I really don't mind the repo being placed in DIR/.git instead of DIR itself.)?
This should be O.K.  And you can always rename DIR/.git ro DIR.git...
- The very first time I need to do "git push origin master", later "git push" 
suffices. I wonder why.
It is because default git behavior is to push matching branches,
i.e. all branches having the same name in both ends (you can change it
using `push.default` config option, see git-config and git-push
manpages).

This is the default behavior, because it allows you to easily control
which branches you want to have visible in remote repository.

[...]
- Sometimes, I use "git push --force", how do I clean up the resulting garbage 
on the server?
"git gc" on server.
- How can I ensure that everything important gets pushed to the server? Maybe 
by using "git push --mirror"? Obviously and logically, .git/config doesn't get 
pushed, but maybe I miss something more important, too?
You can always change `push.default`, or you can provide push refspecs
which pushes all branches, like remote.origin.push =
+refs/heads/*:refs/heads/*

Note that the opissite side of the coin is ensuing that nothing that
doesn't have to be pushed didn't get to be pushed.

HTH (Hope That Helps)
-- 
Jakub Narebski
Poland
ShadeHawk on #git
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help