Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "#git #commits"
-
We have a bunch of white people in human resources that are trying to hire "diverse" people because the company sets HR diversity targets. Which is an inherently racist way of hiring someone.
I am told to interview this guy who claims to have Angular experience. Before the interview I ask to see a form that he has built in Angular. He sends me a repo which is ripped off of an open source project and has the readme and git commits removed. A quick web search shows that it isn't his work. He shows up to the interview and I find out he is from a Southern African country. I deliberately ask some questions about code that I can see he didn't write that I prepared ahead of time. He lies to me and tells me all about how he wrote it which showed me that he has no idea what the code does. I tell HR they better not hire him because he was very comfortable lying to me, and I'm confident that he doesn't understand any of the code that he showed me. I do not trust this guy and would never choose to work with him. HR lady says "Ah okay."
Today he walks in with a big grin on his face. HR lady fucking hired this guy. I can see his monitors from my desk and he spent his whole first day looking at a soccer website on his second monitor. I call up HR, "Why would you even ask me to interview him if you refuse to listen to my feedback?". Lady tells me "You need to be open minded about diversity. Probably most of the things you observed were either cultural differences or language barrier." I tell her definitely not. He lied to me multiple times, and he took credit for other people's work." She tells me that they will keep an eye on me because I'm not being open to diversity.
Are you kidding me? This white lady is literally stereotyping me as a racist because I'm white.
So this fucking HR lady called me a racist because she decided to hire someone that we shouldn't trust. Then she put this asshat on my project. Now I have to be cautious about my position because HR is "watching" my racist ass. Even though I am literally the only one on the development team that is white and speaks English as my first-language. I called a team meeting before the on-boarding is over so I can tell the other developers what is happening. We restructured our code review process so that I will never give him feedback. Then when the time comes that he slips up the "diverse" developers will kick him out so I won't be reprimanded as a "racist".
This company that I work for is a special kind of stupid.34 -
The reason why aliens are avoiding earth:
Me : Guys, the CI/CD pipeline is ready. ci.yaml is our config file, so don't remove it as the deployments will fail.
**10 seconds later**
slack: BUILD FAILED
Me: *Looks at git commits* "Brian removed ci.yaml
Wtf BRIAN!🖕🖕🖕🖕16 -
A new way of making bad commits:
alias fuckit='git commit -m "$(curl -s whatthecommit.com/index.txt)"'
Its like Russian roulette with commit messages!24 -
The superpower to perform version control on reality. (Git)
Imagine this universe (the current branch), which is made up of a series of events (commits).
Having this ability to allows us to:
- undo events (git reset/git revert)
- reorder events (git rebase)
- transfer to another universe (git checkout)
- derive a new universe from current universe (git checkout -b)
- delete a universe (git branch -D)
- apply an event from another universe (git cherry-pick)
and my favorite:
- merge universes and their events (git merge)
we have to resolve conflicting events, of course.
What else? ;)8 -
I have decided to never write commits.
I will never write documentation.
I will write my code in the most confusing way possible.
I will include useless code.
I will always git commit with the message "asdfghjkl" or "HAHA LOLZ I DONT NOW WAT I WOROTEEE"
I will work at Apple.
I am xenophobic.
I will leave the company right before we push to production.
I will make so many friends.11 -
Senior Dev at work told me to cherry pick commits from another branch....later found out that it is an actual git command ! 😅
git cherry-pick <commmit>9 -
A coworker blamed me that our git server is rejecting his changes. Turns out his commits are 200MB large each, including binaries of all newly added libraries. And I was all like:8
-
This was my day at work today
-Be me at work
-Use git terminal on WORK PROVIDED MacBook
-Decide to clone into a repo into another repo as it was one project inside another project
-Makes changes to code
-Attempts to add .
- warning: adding embedded git repo ...
-Apparently needs submodules
-Shit doesn't get added
-During this get asked to create 2 new branches and modify some code
-Do that specifying files to add as add . breaks everything
-Has 3 branches now detached from master
-Super confused where anything is and what's going on
-Go back to branch for other repo to get added to
-Spends 30 minutes trying to understand submodules
-Gives up and deletes folder moving it elsewhere
-Commits begin failing everywhere. Super confused.
-Get everything figured out and commiting
-Goto merge all branches to master
-Merge conflict with .DS_Store
-FML
I think I'm done guys12 -
I generally like to separate changes into as many commits as is reasonable. That way I can go back and see how, why, when and what was changed, along with meaningful commit messages.
But sometimes...
Git add *
Git commit -m "changed lots of stuff"
God I hate myself.3 -
Had a fun little conversation with a potential employer...
Him: We use git for version control. To work with our team you'll be expected to do the same and be proficient at it.
Me: Not a problem. I am well versed with all things git! May I ask, what does your work flow look like?
Him: All of our source lives in a single repo and everyone commits straight to master.
Me: 😐...
Him: Conflicts will not be tolerated.6 -
Someone in Berlin is really into Github's contributions visualization... It even uses it as bathroom decoration 😂4
-
🍿🍿 pull up a chair and get comfy. This was a few years ago and anger has filled some details, so bear with me...
One day, during one of rare afternoons off of work, I was in the library to work on a group project for school. This was maybe a month before it was due, so we were tracking for decent progress and one less stressor over finals. It was about 80° F out, with the perfect breeze for the beach, but school comes first.
I'm team lead (which is terrifying, but less important) and my bro C shows up early to be ready to go on time because he's professional. I'M SO BAD I FORGOT DOUCHEBAGS NAME, so he's A (for asshole), shows up AN HOUR AND 15 MINUTES LATE. But it's not the end of the world, C and I worked around our database schema (which A sent us and we approved), so we could iron out kinks as we went.
A gets there... Fucking finally.
Fucker didn't have the database built (had 2 months to do it, we all agreed on schema a month prior. We're trying to be the adults our ages claim is to be).
*breathe in, count to 10* not a problem, A, just go ahead and start it now so we can at least check what we have.
Ok, my queen, I'll have it done in 10 minutes...
🤔🤔
We needed an id (sku... Which, in 99.9999% of companies is numeric), a short name (xBox one, Macbook, don't smart tv), a description and a price (with 2 decimals). All approved by all 3 of us.
His sku ranges from 3 to 9 ALPHA NUMERIC CHARACTERS, the names were even more generic than expected (item1, item 2, Item_3), no description, and he somehow thought US currency had 5 decimal places!!! (it's more accurate...)
There was an epic, royal, and expensive fight scene in the library (may have been during the Lenten season I decided to give up caffeine AND fast for 40 days to prove a point to an ass wipe of a history teacher, don't recall). I made him cry, he failed the class because C and I wound up fixing everything he touched (graded by commits, because it was also an intro to git, but also, a classmate saw it all), and I had to buy multiple people coffee for yelling in the library.
A tried making out buttons work (I was fed up and done thinking for the day, so moved to documentation), but he fucked those up. I then made those worse by having nested buttons, but I deleted all his shit and started over and fixed it.
I then cried, but C and I survived and have each others backs still.11 -
I have a confession to make....
I just started to use git two days ago.
But atleast I GPG sign my commits11 -
Ending the year on 242!
It's not a big number but considering I've progressed from 10 contributions in 2017 to 242 in 2018, I'm happy!17 -
Woke up today to 4 commits from a peer that completely erased most of the work done in the last 2 weeks. After letting my coworker know that their commits were the issue, she insisted that they were not theirs, however they showed her signature.
Love how Git absolutely destroys liers.17 -
!rant.
Here's some useful git tricks. Use with care and remember to be careful to only rewrite history when noones looking.
- git rebase: powerful history rewriting. Combine commits, delete commits, reorder commits, etc.
- git reflog: unfuck yourself. Move back to where you were even if where you were was destroyed by rebasing or deleting. Git never deletes commits that you've seen within at least the last 50 HEAD changes, and not at all until a GC happens, so you can save yourself quite often.
- git cherry-pick: steal a commit into another branch. Useful for pulling things out of larger changesets.
- git worktree: checkout a different branch into a different folder using the same git repository.
- git fetch: get latest commits and origin HEADs without impacting local braches.
- git push --force-with-lease: force push without overwriting other's changes5 -
Github Inc. (Feel good inc. parody)
=========================
Ha-ha-ha-ha-ha-ha-ha-ha-ha-ha-ha-ha-ha.
Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
Fetch it, fetch it, fetch it, Github.
(change) Fetch it (change), Fetch it (change), Fetch it (change), Github
(change) fetch it (change), fetch it (change), fetch it (change), Github
Repos breaking down on pull request
Juniors have to go cause they don't know wack
So while you filling the commits and showing branch trees
You won't get paid cause it's all damn free
You set a new linter and a new phenomenal style
Hoping the new code will make you smile
But all you wanna have is a nice long sleep.
But your screams they'll keep you awake cause you don't get no sleep no.
git-blame, git-blame on this line
What the f*ck is wrong with that
Take it all and recompile
It is taking too lonnng
This code is better. This code is free
Let's clone this repo you and me.
git-blame, git-blame on this line
Is everybody in?
Laughing at the class past, fast CRUD
Testing them up for test cracks.
Star the repos at the start
It's my portfolio falling apart.
Shit, I'm forking in the code of this here.
Compile, breaking up this shit this y*er.
Watch me as I navigate.
Ha-ha-ha-ha-ha-ha.
Yo, this repo is Ghost Town
It's pulled down
With no clowns
You're in the sh*t
Gon' bite the dust
Can't nag with us
With no push
You kill the git
So don't stop, git it, git it, git it
Until you're the maintainers
And watch me criticize you now
Ha-ha-ha-ha-ha.
Break it, break it, break it, Github.
Break it, break it, break it, Github.
Break it, break it, break it, Github.
Break it, break it, break it, Github.
git-blame, git-blame on this line
What the f*ck is wrong with that
Take it all and recompile
It is taking too lonnng
This code is better. This code is free
Let's clone this repo you and me.
git-blame, git-blame on this line
Is everybody in?
Don't stop, shit it, git it.
See how your team updates it
Steady, watch me navigate
Aha-ha-ha-ha-ha.
Don't stop, shit it, git it.
Peep at updates and reconvert it
Steady, watch me git reset now
Aha-ha-ha-ha-ha.
Github.
Push it, push it, push it, Github.
Push it, push it, push it, Github.
Push it, push it, push it, Github.
Push it, push it, push it, Github.2 -
$ git push
> current branch is behind
$ git push -f
... 5mins later coworker is asking why his commits have disappeared.6 -
Tell people you love them every day because you don't know when it will be the last time.
But more importantly, don't forget to "git push" every day, because you never know when your laptop is about to die, taking with him those last commits. RIP my friend.7 -
.. for the first time I permanently lost access to one of my GPG keys that were actually in use. No revocation certificates, nothing in the keychains on any of my hosts... Keychain flash drive that got stolen had a copy of both, my fileserver used to have a copy of that flash drive until I deleted it to make room for a filesystem migration, and my laptop used to have one.. until I decommisioned it and shredded its hard drive to be deployed somewhere else...
fuck
I can't sign my git commits anymore, and I can't revoke the key either.
(╯°□°)╯︵ ┻━┻15 -
So I heard about this new Git ransomware that is demanding Bitcoin if not fulfilled removing commits and projects...
And then I thought to myself...
What will they get my deleting all my repos of projects that I told myself that I will finish one day.
I guess they will be doing me a favor. Doing something that I have been putting off for ages.2 -
Greetings from Denmark! Thought I would join after a lot of lurking, and tell a little story, as to how I fucked up when I started in my company.
I've been there around 10 days and had never used git besides just add, commit, and push. I was told to work in feature branches, and I did, I was playing around trying to learn, and got some merge conflicts, made a lot of unnecessary commits etc. I was told to clean it up before I merged into dev. And as I didn't know git I asked how I could do that. I was told I could force push in my branch, and that it was okay as long as it was only inside my branch. I tried that and saw my command line force pushing to all branches including dev, and master. My heart skipped a couple of beats, and I went directly to my Lead developer and asked what happend. He got a bit mad at me for pushing in dev and master, and override all the commits there had been made. I tried to explain I didn't he did not really believe me, I was so nervous. Luckily everything came back to normal with people's local branches being pushed etc. But that day I learned about git's push matching config, and my lead was luckily only mad in the heat of the moment and even apologized for getting mad. Just one of my little fuck up's in my short time as a developer7 -
```
Your branch is behind 'origin/master' by 562 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
```
`$ git pull`
```
251 files changed, 103274 insertions(+), 1361 deletions(-)
```
okay fuck.10 -
// Rant
I can understand that people accidentally commit something sensitive to GitHub, I did it too once, but ...
WHY THE FUCK DO YOU MAKE YOUR MISTAKE WORSE BY MAKING IT SEARCHABLE VIA THE GLORIOUS COMMIT MESSAGE OF "REMOVING PASSWORD"
... seriously just google "git remove password" and there is a step by step guides on how to remove sensitive data from git.
Reference (320,006 free passwords):
https://github.com/search/...9 -
I started hearing about Git about a few years ago (I think I was in the first or second class of my study, am in the fifth now). I understood the concept but found it really hard to work with, as in, so hard that I just didn't use it. It kept coming back again and again and a few months ago I thought: Fuck it.
What is one thing that a lot of devs are good at? Automation, exactly. So, I had a GitLab account (idc about their recent fuckup, will keep using it) and had to keep asking people to set stuff up for me.
I started to do research and stumbled upon the empty repo page from GitLab which provided clear instructions on how to locally do stuff so I could interact with a remote repository. Then I started to bash script.
After one day, I had a fully working bash script which, with just two parameters, initiates a new repo, clones it locally, creates a README.MD and commits + pushes it.
Then I put it as executable in the /usr/bin.
So now, whenever I start a new project, I just have to create a directory, go into that directory and call a command with two parameters and I'm good to go!
Actually pretty proud of that, although it might be the most usual thing for a lot of peoples, I wrote a workaround/automation thingy for the thing I find the hardest in development :).25 -
Dev: Hay dude , look this page is broken, how long has it been like this.
Me: No? 🤔, Weren't you working on the Database for this yesterday?
Dev: I didn't change anything yet...
Me: Okay, let's do a git bisect and see where this came from.
...After going back in history and checking out like 3 commits.
Dev: It's fine I'll just search for it
Me: 😕, that's what we are doing the bisect for?
Dev: But we've already looked at so many!?
...After some time of convincing, finds good commit, does the bisect and finds offending piece of code. The database details changed.
Me: okay so while it's still pointing to the old database it's working but switch it to the latest one and it breaks. You sure you didn't change anything?
Dev: I didn't do anything.
Me: okay well it seems to me like it must be a database issue, let me know what you find.
10min later...
Dev: Hay dude, soo I found it, I accidentally renamed a table
In my mind: 😲😲😲
I hate working at a company with bad practices like saving database config into git and not making a copy of the database when you intend to work on it, and not edit the f'ing live instance! Not even close to the luxury of migrations.1 -
Another real-world argument for why I always say git is worth learning properly.
Had to track a really weird bug down today. Had no idea where it came from, how long it'd been in the code and hadn't the foggiest what was causing it. Realistically it could have been introduced any time in the last year or two, and that's tens of thousands of commits in this repo.
Git to the rescue. Knocked up a quick script to test the case in question, fed it into "git bisect run", and 30 seconds later git found the exact (small) commit that caused the issue.
It's a brilliant part of git, yet it seems like almost no-one I know uses it. Some use "git bisect", but using "git bisect run" and passing a script to it seems to be alien to most - yet it's probably my most used tool when it comes to tracking down bugs like these.8 -
I feel bad when I commit too often, especially for little stuff. I'm afraid people will think I just do it to get a higher number of commits :/11
-
My progression of learning git rebase:
Year 1: WTF just happened?! Where is my code?! *deletes and re-clones repo*
Year 2: Ok if I do it suuuper carefully I can get the other dev's one-line change into my branch...shit...shit...wait...fuck...oh lol it worked.
Year 3: Oh yeah let me organize my commits real quick. *drop pick pick squash reword pick fixup drop pick* *git push -f* 😎6 -
I've been working on implementing a fairly large feature on a project at work--
**Sorry. I should rephrase that**
I've been *trying* to work on implementing a fairly large feature on a project at work.
It's slightly complicated because I'm not as "in the know" with the project as I should be. I get tossed around projects a lot as the only designer+developer so I've got my hands in a lot of buckets... Or git repos I should say... My source tree has a lot of tabs open and each project is run by someone with their own ideologies on how stuff should be done and laid out and what not. Basically jumping between these projects leaves you mildly capable on all of them but not amazing at any of individual one them--
--I digress.
There's a bug I've been trying to fix.
--Stupid simple bug, literally just a casting issue or something but there's so much data in this one object that it's taking a few solid minutes of concentration to figure out which variable is busting it all up. It shouldn't take long to fix...
But it has. It has taken 4 days.
FOUR. DAYS.
...To fix what is basically a null reference exception.
Every time I sit down to work on this bug real quick I get pulled away to do a wireframe or change a flow chart or diagram or colour or print styling.
Every. God. Damn. Time.
4 days. Soon to be 5.
My commits are real low at this point guys.
Please boss man, just let me code...4 -
Forgot to push to stable branch before I left from work. Nightly build takes 5 hours so I needed to do that in order to get nightly in the morning. As I'm moving I have only cellphone with 16k internet at home. Sounded like I'm screwed. But luckily fetching few new commits and pushing them back to correct branch git managed even over this parody of internet connection. Love git, I'm saved. Whole repo has few hundred megs, if I had to download everything it would be faster to wait to get real internet connection in few days.1
-
Me: How can I delete pushed commits from origin?
Colleague: Just do git reset --hard and then git push -f
Me: But this is dangerous
Colleague: Wait, I'll do it myself
Colleague: Done
Me: But nothing happened
Colleague: Fuck. I just removed all changes on my own branch2 -
Me and my friend (let's call him Tom) have done tons of projects before and got some decent knowledge, but we got a dude (Bob) working with us on that final project of Uni and he doesn't know what Git is nor what frameworks are so we chose CodeIgniter ONLY to make it easy for him.
2 month after starting the project and getting like half of the work done (mainly me and Tom) Bob 'kind of' learned PHP, CodeIgniter and Git so he wanted to contribute because the project manager will review all the commits done weekly.
So Bob did some HTML (what now?) and wanted to push it on the repo and even using Gitkraken as opposed to the Git CLI he managed to merge two f*** branches, and when he doesn't mess up the repo he totally ignores the files' structure of the project and makes his own thing.
Worst thing is, when Tom tries (I gave up a long time ago) to teach him something or to give him advice he's all like "Oh okay" "Yeah" "Got it!" but he doesn't understand anything and he won't admit it ! It's like talking to a wall...2 -
I haven't ranted for today, but I figured that I'd post a summary.
A public diary of sorts.. devRant is amazing, it even allows me to post the stuff that I'd otherwise put on a piece of paper and probably discard over time. And with keyboard support at that <3
Today has been a productive day for me. Laptop got restored with a "pacman -Syu" over a Bluetooth mobile data tethering from my phone, said phone got upgraded to an unofficial Android 9 (Pie) thanks to a comment from @undef, etc.
I've also made myself a reliable USB extension cord to be able to extend the 20-30cm USB-A male to USB-C male cord that Huawei delivered with my Nexus 6P. The USB-C to USB-C cord that allows for fast charging is unreliable.. ordered some USB-C plugs for that, in order to make some high power wire with that when they arrive.
So that plug I've made.. USB-A male to USB-A female, in which my short USB-C to USB-A wire can plug in. It's a 1M wire, with 18AWG wire for its power lines and 28AWG wires for its data lines. The 18AWG power lines can carry up to 10A of current, while the 28AWG lines can carry up to 1A. All wires were made into 1M pieces. These resulted in a very low impedance path for all of them, my multimeter measured no more than 200 milliohms across them, though I'll have to verify and finetune that on my oscilloscope with 4-wire measurement.
So the wire was good. Easy too, I just had to look up the pinout and replicate that on the male part.
That's where the rant part comes in.. in fact I've got quite uncomfortable with sentences that don't include at least one swear word at this point. All hail to devRant for allowing me to put them out there without guilt.. it changed my very mind <3
Microshaft WanBLowS.
I've tried to plug my DIY extension cord into it, and plugged my phone and some USB stick into it of which I've completely forgot the filesystem. Windows certainly doesn't support it.. turns out that it was LUKS. More about that later.
Windows returned that it didn't support either of them, due to "malfunctioning at the USB device". So I went ahead and plugged in my phone directly.. works without a problem. Then I went ahead and troubleshooted the wire I've just made with a multimeter, to check for shorts.. none at all.
At that point I suspected that WanBLowS was the issue, so I booted up my (at the time) problematic Arch laptop and did the exact same thing there, testing that USB stick and my phone there by plugging it through the extension wire. Shit just worked like that. The USB stick was a LUKS medium and apparently a clone of my SanDisk rootfs that I'm storing my Arch Linux on my laptop at at the time.. an unfinished migration project (SanDisk is unstable, my other DM sticks are quite stable). The USB stick consumed about 20mA so no big deal for any USB controller. The phone consumed about 500mA (which is standard USB 2.0 so no surprise) and worked fine as well.. although the HP laptop dropped the voltage to ~4.8V like that, unlike 5.1V which is nominal for USB. Still worked without a problem.
So clearly Windows is the problem here, and this provides me one more reason to hate that piece of shit OS. Windows lovers may say that it's an issue with my particular hardware, which maybe it is. I've done the Windows plugging solely through a USB 3.0 hub, which was plugged into a USB 3.0 port on the host. Now USB 3.0 is supposed to be able to carry up to 1A rather than 500mA, so I expect all the components in there to be beefier. I've also tested the hub as part of a review, and it can carry about 1A no problem, although it seems like its supply lines aren't shorted to VCC on the host, like a sensible hub would. Instead I suspect that it's going through the hub's controller.
Regardless, this is clearly a bad design. One of the USB data lines is biased to ~3.3V if memory serves me right, while the other is biased to 300mV. The latter could impose a problem.. but again, the current path was of a very low impedance of 200milliohms at most. Meanwhile the direct connection that omits the ~200ohm extension wire worked just fine. Even 300mV wouldn't degrade significantly over such a resistance. So this is most likely a Windows problem.
That aside, the extension cord works fine in Linux. So I've used that as a charging connection while upgrading my Arch laptop (which as you may know has internet issues at the time) over Bluetooth, through a shared BNEP connection (Bluetooth tethering) from my phone. Mobile data since I didn't set up my WiFi in this new Pie ROM yet. Worked fine, fixed my WiFi. Currently it's back in my network as my fully-fledged development host. So that way I'll be able to work again on @Floydian's LinkHub repository. My laptop's the only one who currently holds the private key for signing commits for git$(rm -rf ~/*)@nixmagic.com, hence why my development has been impeded. My tablet doesn't have them. Guess I'll commit somewhere tomorrow.
(looks like my rant is too long, continue in comments)3 -
I was asked to look into a site I haven't actively developed since about 3-4 years. It should be a simple side-gig.
I was told this site has been actively developed by the person who came after me, and this person had a few other people help out as well.
The most daunting task in my head was to go through their changes and see why stuff is broken (I was told functionality had been removed, things were changed for the worse, etc etc).
I ssh into the machine and it works. For SOME reason I still have access, which is a good thing since there's literally nobody to ask for access at the moment.
I cd into the project, do a git remote get-url origin to see if they've changed the repo location. Doesn't work. There is no origin. It's "upstream" now. Ok, no biggie. git remote get-url upstream. Repo is still there. Good.
Just to check, see if there's anything untracked with git status. Nothing. Good.
What was the last thing that was worked on? git log --all --decorate --oneline --graph. Wait... Something about the commit message seems familiar. git log. .... This is *my* last commit message. The hell?
I open the repo in the browser, login with some credentials my browser had saved (again, good because I have no clue about the password). Repo hasn't gotten a commit since mine. That can't be right.
Check branches. Oh....Like a dozen new branches. Lots of commits with text that is really not helpful at all. Looks like they were trying to set up a pipeline and testing it out over and over again.
A lot of other changes including the deletion of a database config and schema changes. 0 tests. Doesn't seem like these changes were ever in production.
...
At least I don't have to rack my head trying to understand someone else's code but.... I might just have to throw everything that was done into the garbage. I'm not gonna be the one to push all these changes I don't know about to prod and see what breaks and what doesn't break
.
I feel bad for whoever worked on the codebase after me, because all their changes are now just a waste of time and space that will never be used.3 -
FFS stop squashing commits. If “updated comments” is what the commit was it should show it in git blame. If “fixed null check” is what the commit was it should show it in git blame.
There is no reason to have “ticket-234 service revision” beside 1000 lines of code. How does anyone justify this loss of git info for the sake of “clean history”? Nobody looks at your history and says, “That is bloody clean git history I should write home about it.” People do however look at the code and say, “I wish I knew WTF they were trying to do on that line.”16 -
Not separating different changes into different commits, and just adding "a few tweaks" when I can't be bothered to list changes.
git commit -m "Added x, updated y, renamed z, and a few other tweaks" -
Project with a single developer. Main automation used daily by 50% of the team past few years.
...
git server setup? done
hands on workshops? done
invited to ask more questions/for assistance? yes
....1 month later....
Q: Why haven't you pushed your code to the repo? Did you encountered any issues?
A: Why it has to be in the repo when the source code is available on my computer and I copy it into shared folder from time to time?
Everything is set up and was served on a silver plate. I would even assist with the commits before they get used to using it. More than half a year have passed. Yet the source codes are nowhere to be found.4 -
I think that two criterias are important:
- don't block my productivity
- author should have his userbase in mind
1) Some simple anti examples:
- Windows popping up a big fat blue screen screaming for updates. Like... Go suck some donkey balls you stupid shit that's totally irritating you arsehole.
- Graphical tools having no UI concept. E.g. Adobes PDF reader - which was minimalized in it's UI and it became just unbearable pain. When the concept is to castrate the user in it's abilities and call the concept intuitive, it's not a concept it's shit. Other examples are e.g. GEdit - which was severely massacred in Gnome 3 if I remember correctly (never touched Gnome ever again. I was really put off because their concept just alienated me)
- Having an UI concept but no consistency. Eg. looking at a lot of large web apps, especially Atlassian software.
Too many times I had e.g. a simple HTML form. In menu 1 you could use enter. In menu 2 Enter does not work. in another menu Enter works, but it doesn't submit the form it instead submits the whole page... Which can end in clusterfuck.
Yaaayyyy.
- Keyboard usage not possible at all.
It becomes a sad majority.... Pressing tab, not switching between form fields. Looking for keyboard shortcuts, not finding any. Yes, it's a graphical interface. But the charm of 16 bit interfaces (YES. I'm praising DOS interfaces) was that once you memorized the necessary keyboard strokes... You were faster than lightning. Ever seen e.g. a good pharmacist, receptionist or warehouse clerk... most of the software is completely based on short keyboard strokes, eg. for a receptionist at a doctor for the ICD code / pharmaceutical search et cetera.
- don't poop rainbows. I mean it.
I love colors. When they make sense. but when I use some software, e.g. netdata, I think an epilepsy warning would be fair. Too. Many. Neon. Colors. -.-
2) It should be obvious... But it's become a burden.
E.g. when asked for a release as there were some fixes... Don't point to the install from master script. Maybe you like it rolling release style - but don't enforce it please. It's hard to use SHA256 hash as a version number and shortening the hash might be a bad idea.
Don't start experiments. If it works - don't throw everything over board without good reasons. E.g. my previous example of GEdit: Turning a valuable text editor into a minimalistic unusable piece of crap and calling it a genius idea for the sake of simplicity... Nope. You murdered a successful product.
Gnome 3 felt like a complete experiment and judging from the last years of changes in the news it was an rather unsuccessful one... As they gave up quite a few of their ideas.
When doing design stuff or other big changes make it a community event or at least put a poll up on the github page. Even If it's an small user base, listen to them instead of just randomly fucking them over.
--
One of my favorite projects is a texteditor called Kate from KDE.
It has a ton of features, could even be seen as a small IDE. The reason I love it because one of the original authors still cares for his creation and ... It never failed me. I use Kate since over 20 years now I think... Oo
Another example is the git cli. It's simple and yet powerful. git add -i is e.g. a thing I really really really love. (memorize the keyboard shortcuts and you'll chunk up large commits faster than flash.
Curl. Yes. The (http) download tool. It's author still cares. It's another tool I use since 20 years. And it has given me a deep insight of how HTTP worked, new protocols and again. It never failed me. It is such a fucking versatile thing. TLS debugging / performance measurements / what the frigging fuck is going on here. Take curl. Find it out.
My worst enemies....
Git based clients. I just hate them. Mostly because they fill the niche of explaining things (good) but completely nuke the learning of git (very bad). You can do any git action without understanding what you do and even worse... They encourage bad workflows.
I've seen great devs completely fucking up git and crying because they had really no fucking clue what git actually does. The UI lead them on the worst and darkest path imaginable. :(
Atlassian products. On the one hand... They're not total shit. But the mass of bugs and the complete lack of interest of Atlassian towards their customers and the cloud movement.... Ouch. Just ouch.
I had to deal with a lot of completely borked up instances and could trace it back to a bug tracking entry / atlassian, 2 - 3 years old with the comment: vote for this, we'll work on a Bugfix. Go fuck yourself you pisswads.
Microsoft Office / Windows. Oh boy.
I could fill entire days of monologues.
It's bad, hmkay?
XEN.
This is not bad.
This is more like kill it before it lays eggs.
The deeper I got into XEN, the more I wanted to lay in a bathtub full of acid to scrub of the feelings of shame... How could anyone call this good?!?????4 -
One of our customers asked us (a while back) to create a nice interface for their label printer (preferably integrated in their web cms)
So we started developing and after two weeks (we were almost done) they canceled the request, payed for the worked ours and said that another company was willing to do it faster (even though we were almost done)
So that was about half a year ago, meanwhile I've migrated to Ubuntu
Today I heard we have to do it again because the other 'faster' company wasn't faster, and didn't live up to the expectations
I do not have the code anymore... My colleagues also do not have the code anymore... It was removed to keep our coded clean, not sure if it's on git (the guy who workers on the part that's has a repo doesn't always commits...)
I've worked on on a standard node js script (which I didn't create a repo for because the project was canceled)
... Amazing4 -
How to delete 16 days of commits 101 🤯:
First of all, me and my class (computer science in college) were working on a project for around 12 weeks, our “client” is one of our teacher and we literally just finished today to work on the project since our degree terminal projects are starting next week.
So now there's this guy in our class who kinda has the reputation to be stuborn and clumsy; he’s going to do his assigned task, commit, push it and put his task into QA (which is just peer evaluation and testing nothing really complex) and then when we try his functionality and finds out it isn’t working, we tell him and the only thing he always answers is : “but it works on my machine” and then we will need to explicitly ask him to be sure he has all the latest changes (database and codebase) and to see if it still works on his side since it doesn’t work for anyone else.
This actually happened quite a lot in these 12 weeks and you can definitely imagine that of course it would definitely not happen again today when we thought we were finally done with this project…
So another teacher gave us an assignment to create a development environment for our big project so we could try out Docker instead of virtual machines, he made GitHub Classroom repos with a minified version of our project and up to this point everything is fine and clear. That is until 3 hours ago, that our little clumsy friend somehow pushed his Docker related files on the main project, maybe he was trying his Docker setup on the real project no big deal you know EXCEPT IF HE HADN’T NOT PULLED SINCE 16 DAYS 😤.
He was doing maintenance on another project so I can maybe understand but gosh how did he not see the big warning of Git that he wasn’t up to date with master ? And yes we only have a master branch bear with us but hopefully we were able to create a new branch with the up to date project and then merge master.
A couple of us had a gut feeling that this guy would do something that would break the whole project right before we ended, turns out we were right 😅15 -
Why squash commits when you can just --amend the commit and git push -f
#SecretsOfADumpsterFireDeveloper4 -
Me: we should take this project a little more serious, follow the coding standards and please let us use git!
Pal: Oh sure.
//made a new repo and the first commit, sent the link and prepared everything (Granted access etc.)
//2 weeks later
Me: What's up, I already got quite some commits and you haven't pushed anything so far.
Pal: Pushed? what do you mean?
Me: I'm the talking about the git repo, I'm the only one contributing.
Pal: Oh yeah git, I installed it but I have no idea how that stuff works. I opened Git gui but i don't know what I'm supposed to do. I got everything in the Dropbox tho.
Me: ... ... ... FUUUUUUUUU WHAT THE FUCK MATE ARE YOU SHITTING ME, THE HELL DO WE HAVE GOOGLE FOR AND WHY DIDNT YOU ASK, LIKE WTF SERIOUSLY I EXPLICITLY TOLD YOU TO USE GIT.
😣2 -
I think the reason why git beginners have a hard time with it is because the api is a bit untuitive.
For example: if you want to "unstage" staged changes, you run git reset, and if you want to "delete" those changes from your working copy, you git checkout those files.
But then, you find out that you can do all of that if you git add . and git reset --hard.
So you're like "huh..."
And then you discover that if you end the resethard with a branch name/commit id then you also make current branch point to the commit or that branch/commit (respectively).
So you're like "huh..."
And also if you add a commit id or branch name to git checkout, you change the current branch to specified/enter detached state with HEAD pointing to that commit (respectively).
Oh and you don't use git branch to create branches, you use git checkout -b because it's a lot shorter.
So here's a rundown: git reset mutates things related to files, but also mutates things related to branches.
git checkout also mutates things related to files and mutates things related to branches too (in a diff way). Also, creates new branches.
I don't think this is intuitive. We users use the same commands for different purposes with just a different flag.
Commands shouldn't mutate different types of things. But don't composite commands (as in, "smart" commands that mutate different things) shoudln't be a flag in an existing command, it should be a single new command of its own.
Maybe if I reread the internals of git now, I'll be able to disgest the dozens of technical terms they throw at you (they are many). And in my mind, the api will cognitively fit to the explanations.
Here's another one that feels weird too.
If you want to make your changes start on top of someone else's commit, you do git rebase.
But git rebase -i can be used for that, and also to delete, modify changes or message of, reorder or combine previous commits of the current branch.
Maybe the reason why several things we do overlap with the same commands is because they internally do similar things, and while not separating those commands might make it less intuitive, it makes them more sensible? i dunno...
disclaimer: I'm not setting this opinion in stone though, and am aware that git was created by one of the most infuential programmers.6 -
Merge VS Rebase:
- Did you pick a side?
- Practical tips? Like dealing with merge conflicts
- Have you ever regretted using either?
My answer
* My team squash-merges all branches to master so we don't really care what the branch history looks like. Master history should be pretty - but a branch history can be ugly and filled with a dozen commits.
* Practical tip 1: use `git config rerere.enabled true`. rerere stands for "reuse recorded resolution" and this means if you rebase often you don't have to resolve the same merge conflict twice.
* Practical tip 2: use `git commit --fixup oldcommithash` and then rebase with `--autosquash`
* I like using Rebase. But I have regretted the amount of time I've spent on trying to rebase old branches with many commits only to give up and to `git rebase --abort` since I realised I couldn't handle trying to reapply all the commits chronogically as the changes in the 1st commit were no longer relevant.46 -
Group assignment in a software engineering class. Got that notorious lazy kid in my group of four who failed the class in the last term. I was perfectly aware of his reputation, but accepted him in the group nonetheless, because he already knows what needs to be done in the class.
He started to work on his assignment: mostly boilerplate code that didn't even build. He didn't even bother to fix it. I had a lot of time over the Easter weekend, so I decided to just code as much for the assignment as possible for the mid-term submission. I replaced his broken boilerplate stuff with a working solution. I told the others in the group chat about it. Code works and builds, test coverage is high. Everything is fine.
The lazy kid replied to the group chat, that if I'd wanted to code and document(!) everything on my own, I should have told him in the first place. Also got that "fuck off" emoji in the message. So I restored his broken boilerplate stuff using git, even fixed the build errors and told him to explain to me what he tried to achieve, and that I'd be happy to include his code as soon as it worked. Didn't hear anything since. Commits neither.
I guess he was just looking for an excuse for not doing additional work in the project. -
This week I got a promotion after being a junior for a year. Boss said Im a medior now and my monthly salary raised with 400 euro per month
Feels good but what feels bad is that a coworker of mine which has been contracted recently without any development experience is still making 400 more a month..
The thing is that this "developer" wanted to become a Java developer, he has been given time during work to study Java and in the meanwhile join the team thats working on a saas product (my team, where im lead dev)
During the 3 months ive counted a maximum of 10 commits and i was done with him which conflicted in a very bad vibe at the office.
During a refinement I asked if everybody understood what needs to be done, no questions asked. Next day when i was working at a clients office on another project 9 am i git a Skype message "Can you tell me What to do? I have no idea" where I replied "you should have asked me yesterday, i am not going to help you unless u come up with a question that makes sense.. what have u tried urself?".. Well then he got mad and stopped doing what he was trying to do.
The next morning i talked with him and we agreed to have a 1hour session to talk him through the user story. When we were done, he said that he understood and was going to work on it.
Next day I check, no commits, so during stand up i confronted hmj with this and he admitted hes been lacking and wanted to talk with the boss and me after stand up.
Well he admitted things were going to fast to keep up for him because he is doing some sysadmin stuff aswell.. the plan of becoming a Java dev was now history and he left the team..
Now he is just doing some sysadmin stuff but its been 3 days that hes been saying today ill setup a tomcat on the servers and give you SSH acces to deploy your .war files, today I finally gained access but he couldnt figure out how to move the war to the webapps folder.. And i wasnt allowed to transfer it to there..2 -
I found a great app on iOS that allowed me to clone my Git repo, make commits, change branches, it had everything! I made a small commit and went to push to the remote server, but then it told me that I had to purchase premium to be able to push to remote. I was kind of upset, but I went to check the price of premium, in case it was a few cents. Nope, $25 just to be able to push commits. Seriously? If I was at my computer I’d be able to do this for free.7
-
Programmer: "Places : instead of ;"
Javascript: "What the fuck did you just fucking post about me, you absolute beginner? I'll have you know I worked for ten of the biggest silicon-valley industry companies, and I've been involved in over two hundred top secret projects including NodeJS. I am trained in refactoring the most fucked up code, and I'm the top C++er in the entire fucking internet-connected universe. You are nothing to me, but just another IP. I will fucking revoke your commits from your gitlab account with absolute dedication using only one Rasperry Pi client. Mark my fucking words. You think you can get away with posting that shit on one of my numerous very personal blogs? Your devices are fucking bricked, kid. My attack software can be anywhere, anytime, and it is tasked to remove your entire git contributions from planet earth. Not only am I extensively trained in remote cross-firewall device-hacking, but I have access to over 100 of the United States CIA and NSA git repositories. If only you could have known what doom-bringing C-one-liner you have raised from my fucking hands, maybe you would have held your fingers. But you could not. You did not. And now you're paying the price, noob. I will hail havoc upon your puny online-presence and you will drown in your own badly designed software. You're fucking offline, kiddo."11 -
Well since vim & git has already been said gpg. you can use it as ssh keys and sign your commits to make sure nothing nasty is added to a git repo under your name
-
The three of us were all doing Java project for class. Within 5 minutes, we all merged our branches up to the integration branch, and everything broke.
Longest 2 hours of yelling ever. We took out all of the stops: git blames, reverting commits, the whole nine.
Turns out that someone accidentally pushed their .idea folder, which messed up everyone's system.2 -
Being able to properly name branches/commits in git and holding back from the tempting "I'll fix that along the way too" is an art on its own
-
An hour of "WHY ISN'T ANYTHING WORKING" followed by ashamedly squashing 20+ local commits and actually remembering to git push the result that time.1
-
Made this amazing discovery in my project. Made sure to commit the code in Git to show a demo to the manager.
Could not find the code at all when it was time for the demo. Checked all the commits to find out, nope, no luck.
Later realized I committed that code to special branch :/ And I totally forgot about that :(5 -
When "Programmers" don't understand how something as simple as git works.
>Do they keep whole repository in a zip file for each commit? Having made 100 commits is there 100 zips with all the files? or is each commit additive to the first commit. so that 1 zip with all the files you just get files added or removed based on what commit you are downloading?
Stuff like this makes me cry.....
-commit 1GB file
-commit another 1GB file
Repo is now 3GB? Seems legit right?8 -
Worst experience?
Fourth semester. Programming project.
We were 4 persons, I did almost all the work (including fixing the stuff they broke) but that's not the point.
One of them somehow killed our git repo at least once per weak. It was really annoying, because I had to fix it.
Also he named *all* of his commits 'Pfuschpush' (Pfusch is German for botch). And the code had exactly this quality. I often had to rewrite everything he did (or simply revert the commit).1 -
Am I the only developer in existence who's ever dealt with Git on Windows? What a colossal train wreck.
1. Authentication. Since there is no ssh key/git url support on Windows, you have to retype your git credentials Every Stinking Time you push. I thought Git Credential Manager was supposed to save your credentials? And this was impossible over SSH (see below). The previous developer had used an http git URL with his username and password baked in for authentication. I thought that was a horrific idea so I eventually figured out how to use a Bitbucket App password.
2. Permissions errors
In order to commit and push updates, I have to run Git for Windows as Administrator.
3. No SSH for easy git access
Here's where I confess that this is a Windows Server machine running as some form of production. Please don't slaughter me! I am not the server admin.
So, I convinced the server guy to find and install some sort of ssh service for Windows just for the off times we have to make a hot fix in production. (Don't ask, but more common than it should be.)
Sadly, this ssh access is totally useless as the git colors are all messed up, the line wrap length and window size are just weird (seems about 60 characters wide by 25 lines tall) and worse of all I can't commit/push in git via ssh because Permissions. Extremely aggravating.
4. Git on Windows hangs open and locks the index file
Finally, we manage to have Git for Windows hang quite frequently and lock the git index file, meaning that we can't do anything in git (commit, push, pull) without manually quitting these processes from task manager, then browsing to the directory and deleting the .git/index.lock file.
Putting this all together, here's the process for a pull on this production server:
Launch a VNC session to the server. Close multiple popups from different services. Ask Windows to please not "restart to install updates". Launch git for Windows. Run a git pull. If the commits to be pulled involve deleting files, the pull will fail with a permissions error. Realize you forgot to launch as Administrator. Depending on how many files were deleted in the last update, you may need to quit the application and force close the process rather than answer "n" for every "would you like to try again?" file. Relaunch Git as Administrator. Run Git pull. Finally everything works.
At this point, I'd be grateful for any tips, appreciate any sympathy, and understand any hatred. Windows Server is bad. Git on Windows is bad.10 -
When you're clearly in the zone:
Excluding merges, 1 author has pushed 22 commits to master and 22 commits to all branches. On master, 70 files have changed and there have been 16,339 additions and 321 deletions.1 -
Yet another rant on cooperate world
The other day my colleague was telling me that he was with very senior architect (so called architect, who keeps on changing things on the fly) and when my colleague was telling that he doesn't have resources to work with, this senior architect opened up stash (Atlassian Git) and opened up profiles with names and was looking at commits in the git...and said "this guy doesn't have commits for long time...he is free"
WTF.... 0 0 -
A) "Why did you do that?"
B)<typing>
A) "Hello? I'm talking to you..."
B) "Sorry, i missed to tag this Commit. please see the commit history for your questions. That's why i use the DVCS.1 -
Design team constantly needs help fixing bad commits and merges. (can't use git after using it for 3 years...) And boss wants to know why the ticket is falling behind.
After explaining I'm pretty much told that assisting other teammates is part of the job but I'm being paid to write code and need to stay late.... this is while I'm hitting a 10 hour workday already (skipping lunch). And btw, we aren't doing reviews this year because the business made some bad decisions recently and raises aren't in the budget.7 -
I work on a team project for a test and maintenance course in University. We agreed as a team to adopt a git infrastructure that would prioritize the stability of the master branch at all cost by only updating commits up to the next stable point and tagging every single release. We have a long polling development branch to prepare our releases and we create feature branches for the tickets we need to resolve. I even wrote documentation to make sure that we don't forget and protected the master branch on gitlab from direct modifications.
Can someone fucking tell me how one of my teammates managed to fuck over all of this and work on an unfinished feature straight on master?
N.b. I know that he probably edited straight from gitlab's online text editor because they have a big where they don't restrict modifications on protected branches.1 -
I love git stash.
It's helps a lot for doing refactors to me. I guess it's not the most complex workflow, but it wasn't obvious to me when I started with git. Let me explain.
Refactors. As you start writing the first lines of a refactor, you start to notice something: you're changing too many things, your next commit is going to be huge.
That tends to be the very nature of refactors, they usually affect different parts of code.
So, there you are, with a shitload changes, and you figure "hey, I have a better idea, let me first do a smaller cohesive commit (let's call it subcommit) that changes a smaller specific thing, and then I'll continue with the upper parts of the refactor".
Good idea, but you have a shitload of changes nearly touching every file in your working copy, what do you do with these changes? You git stash them.
Let's say you stash and try to do that smaller "subcommit". What sometimes happens to me at this point is that I notice that I could do an even smaller change inside this current "subcommit". So I do the same thing, I git stash and I work on that even smaller thing.
At some point I end up `git stash pop`ing up all these levels. And it it shows that git stash is powerful for this.
* You never lose a single bit of work you did.
* Every commit is clean.
* After every commit you can run tests (automated or manual) to see shit is still working.
* If you don't like some changes that you had git stashed, you can just erase them with git reset --hard.
* If a change overlaps between a stash you're applying and the last "subcommit", then
if they differ, git shows conflicts on the files,
if they are identical, nothing happens.
with this workflow things just flow and you don't need to wipe out all your changes when doing simpler things,
and you don't need to go around creating new branches with temp commits (which results in bloated temp commits and the work of switching branches).
After you finish the refactor, you can decide to squash things with git rebase.
(Note: I don't use git stash pop, because it annoys the fuck out of me when I pop and you I get conflicts, I rather apply and drop)4 -
/me joining a new front-end project with enforced prettier rules to complete the build pipeline.
No double-quotes ! Single-quotes all the way !
- weird flex, but OK. I'll comply
No CRLF ! LF only !
- Ok, now you're starting to annoy me. With git autocrlf I can have my precious CR locally bu check in only LF and YOU CAN GIVE THE FUCK ABOUT WHAT LINE ENDINGS I USE LOCALLY WHEN EVERYTHING WILL BE CORRECT WHEN PUSHING COMMITS!
No semi-colons !
- Now I hate you18 -
We crack jokes at each other and use profanity at all times. Troll other teams with funny git commits. Our slack channel is filled with weird giphys. Currently the most productive team according to the Chief Architect. How open is your work environment?5
-
Me: Ok I've updated the docs, I'll open a PR with the changes
Maintainer: Looks great! Can you remove the changes to the package-lock.json? (I assume it got updated when you ran npm install to start the webserver)
Me: Ok sure, I'll update it soon
And this is where the troubles begin. The file was commited 2 commits ago, so I have to roll back to then. However, the remote repository has been updated since then, so I git fetch to keep up to date.
This makes the rollback a hell of a lot harder, so I run git log to see the history. I try a reset, but I went back to the wrong commit, and now a shit ton of files are out of sync.
I frantically google 'reset a git reset', and come across the reflog command. Running that fucks things up even worse, and now so much shit is out of sync that even git seems confused.
I try to fix the mess I've created, and so I git pull from my forked repo to get myself back to where I was. Git starts screaming at me about out of sync files, so I try to find a way to overwrite local changes from the origin.
And by this point, the only way to describe what the local repo looks like is a dumpster fire clusterfuck that was involved in a train wreck
I resolved the mess by just deleting the local copy and git cloning again from my fork.
I gotta learn how to use Git better5 -
I am an amazing programmer, but without the required skills
My git commit history is pristine, but without the commits4 -
let me preface with the fact that I'm now known at my new job for being the resident cli hipster. I can't lay any claims to knowing if it's "better" but I like it, I don't care if you do or don't, it just works for me and my flow
so at my job, we generally squash all our commits into one commit and delete the source branch upon merging; i accidentally committed all my work to an old, already merged branch, so my boss tells me it would be more of a PITA with the weird references we would encounter by merging the branch again, rather than just cherry pick the commits into a new branch, which i'm like "eh, fine.".
HIM: "You want to share your screen so we can resolve this?"
ME: "k"
HIM: "Oh, you won't be able to do this in a terminal, you are going to have to load up a GUI of some sort"
ME: "lawlz, no you don't"
HIM: "i highly doubt you will be able to accomplish that, but if you wanna make an ass of yourself, i'll humor you"
ME: "yeah, watch this"
> git log > log.txt
> git checkout <new branch>
> git cherry-pick <copy-paste-full-commit-hash-here>
> git push
ME: "done"
HIM: "what? there's no way you did it that easily, where are all your other commits???"
ME: "i usually try to amend my commits since we squash them anyhow. it really helps in situations like this"
HIM: "well, you go girl"
roll that up in your fancy degree and smoke it, why don't ya?2 -
So we have this project that we are hosting on our testing server for presentation purposes ( already provisioning prod server ).
Our boss was presenting it to investors and my superior committed a bug there and was asking me help to figure out how to fix it (yeah.. he doesn't know how to checkout last commits in git... fml), and I realised the presentation might still be going on... so I asked: isn't boss showing it to investors?
superior: lol, idk maybe.
me: right... ( I proceed to roll back changes ) bye, have a good lunch.
And here I am having lunch considering my life choices. -
So I work for an IT consulting firm (web development) and was hired by a customer 7 months ago for coaching Git, implementation of VueJS on the front-end and fostering teamwork with devs who'd been in their solo comfort zone for the last 15 years.
I asked for confirmation multiple times on whether they were sure they wanted to go through with a bigger investment in front-end. Confirm they did, multiple times.
After half the team's initial enthusiasm faded (after 1 month), the 'senior' of them who's worked there for 18 years on a single -in the end, failed- project got a burn-out after half a week of showing up (without doing actual work) from the stress, and started whining about it with management that has no technical clue whatsoever. This and other petty office politics lead to the dumbest organizational and technical decisions I've seen in my short 5-year career (splitting a Laravel app that uses the same database in two, replacing docker container deployment with manual ssh'ing and symlinking, duplicating all the models, controllers, splitting a team in two, decreasing productivity, replacing project management dashboards with ad-hoc mail instructions and direct requests).
Out of curiosity I did a git log --author --no-merges with the senior's name on the 2 projects he was supposed to help on, and that turned up... ZERO commits. Now the dept. hired 3 new developers with no prior experience, and it's sad to see the seniors teach them "copy paste" as the developer's main reflex.
Through these 7 months I had to endure increasingly vicious sneers from the IT architect -in name only- who gets offended and hysterical at every person who dares offer suggestions. Her not-so-implicit insinuation is that it's all my fault because I implemented Vue front-end (as they requested), she has been doing this for months, every meeting at least once (and she makes sure other attendees notice). Extra background: She's already had 2 official complaints for verbal abuse in the past, and she just stressed another good developer into smoking again.
Now I present her my timesheet for January, she abuses her power by refusing to sign it unless I remove a day of work.
Earlier this week I asked her politely to please stop her unjust guilt-tripping to which she shouted "You'll just have to cope with that!", and I walked out of the room calmly (in order to avoid losing my nerves). She does this purely as a statement, and I know she does it out of bad faith (she doesn't actually care, as she doesn't manage the budgets). She knows she wields more power over me than the internal devs (I am consultant, so negative reviews for me could delay further salary raises).
I just don't know how to handle this person: I can't get a word in with her, or she starts shouting, and it's impossible to change her (completely inaccurate technological) perception.3 -
So I taught git to my colleagues. They were happy to learn new things.
I asked them to commit things that they have done with proper message in every projects from now on. I find 50-80 commits to pull in every 10mins. Ughhh. They were committing every single changes they were making. 😂😂😂
Sometimes simple things can overwhelms some people4 -
So, funny story with a bit of self promotion at the end.
I was recently checking out some apps on playstore and found that my first ever , "launched just to experiment" app (released 1.5 years ago) has received more than 5k downloads . I was very happy about that so posted a small message on LinkedIn .
Now , my LinkedIn profile consists of 98% people who are totally strangers and never met me ( is it just me or do you also get a lot of stranger connect requests there?). So my usual post rarely ever goes beyond 5 or 6 likes.
Bit idk how there too my post got 35+ likes and now i was on cloud9.
So i finally decided to kick my ass and release some update to that app ( it had around 70% pity comments like "nice first app,but it should have this x feature",. "overall nice but it could use an x feature " etc.
And boy what my journey was in the last 72hours.
Firstly my madhead laptop started killing me with the battery failures and constant hang.
Then my past asshole self tried to give me a middle finger. So i have this whole partition in my memory where i keep my Android stuff and apps. It has a special folder named published zone and i keep all my published app codes and related files there.
I was fairly certain that this app's code eill be also there,so i opened it, found the code and tried running it.
Turns out my asshole self had tried to mess around the code so much that all the db layer WAS fucked up, all the ui WAS changed and no code was working.
"Not to worry", i thought. I always use git and there would be a correct version some commits before. WRONG. I HAD CHANGED THE WHOLE FUCKING WORKING PRODUCTION CODE AND DIDN'T MAINTAIN A VCS!
Also this was the verbose and shitty java code my 1.5 year before self so loved to write, so it was taking me way more time to figure out what's happening in an already fucked up code.
So i tried a couple of ways to get back my working code :
- I tried looking for a google recommended solution. Those guys take my whole app code build and distribute via playstore, but they provide no means to retrieve back the original code.
- i checked my (occasionally) back up hard disk but no. My hard disk would have 100s of movies from 2016 , but not a useful piece of fuckin code.
- i also tried to get my apk and decompile it via some online decompiler. Here the google again fucks up and don't allow me to get my apk directly. Meanwhile i found a ton of shady websites which are hosting an apk of my app without my knowledge O_o . I tried to decompile on of them but code was even more non understandable than my fuck up code.
So i ended up looking at both the mess up code and decompiled code and coded the whole app from scratch ( well not scratch, i extracted the resources and some undamaged activities from the mess up code . Also github was down for more than 3 hours yesterday , at the same time when i was trying to look onto some repositories)
Lessons learned:
- DON'T FUCK UP WITH THE PRODUCTION CODE
- MAINTAIN VCS
- Your laptop is shit reliable, github is also shit reliable , so save code at multiple places.
- there are way more copies of your code lying on the internet than you think.
Checkout my app here :https://play.google.com/store/apps/...2 -
To me this is one of the most interesting topics. I always dream about creating the perfect programming class (not aimed at absolute beginners though, in the end there should be some usable software artifact), because I had to teach myself at least half of the skills I need everyday.
The goal of the class, which has at least to be a semester long, is to be able to create industry-ready software projects with a distributed architecture (i.e. client-server).
The important thing is to have a central theme over the whole class. Which means you should go through the software lifecycle at least once.
Let's say the class consists of 10 Units à ~3 hours (with breaks ofc) and takes place once a week, because that is the absolute minimum time to enable the students to do their homework.
1. Project setup, explanation of the whole toolchain. Init repositories, create SSH keys for github/bitbucket, git crash course (provide a cheat sheet).
Create a hello world web app with $framework. Run the web server, let the students poke around with it. Let them push their projects to their repositories.
The remainder of the lesson is for Q&A, technical problems and so on.
Homework: Read the docs of $framework. Do some commits, just alter the HTML & CSS a bit, give them your personal touch.
For the homework, provide a $chat channel/forum/mailing list or whatever for questions where not only the the teacher should help, but also the students help each other.
2. Setup of CI/Build automation. This is one of the hardest parts for the teacher/uni because the university must provide the necessary hardware for it, which costs money. But the students faces when they see that a push to master automatically triggers a build and deploys it to the right place where they can reach it from the web is priceless.
This is one recurring point over the whole course, as there will be more software artifacts beside the web app, which need to be added to the build process. I do not want to go deeper here, whether you use Jenkins, or Travis or whatev and Ansible or Puppet or whatev for automation. You probably have some docker container set up for this, because this is a very tedious task for initial setup, probably way out of proportion. But in the end there needs to be a running web service for every student which they can reach over a personal URL. Depending on the students interest on the topic it may be also better to setup this already before the first class starts and only introduce them to all the concepts in a theory block and do some more coding in the second half.
Homework: Use $framework to extend your web app. Make it a bit more user interactive with buttons, forms or the like. As we still have no backend here, you can output to alert or something.
3. Create a minimal backend with $backendFramework. Only to have something which speaks with the frontend so you can create API calls going back and forth. Also create a DB, relational or not. Discuss DB schema/model and answer student questions.
Homework: Create a form which gets transformed into JSON and sent to the backend, backend stores the user information in the DB and should also provide a query to view the entry.
4. Introduce mobile apps. As it would probably too much to introduce them both to iOS and Android, something like React Native (or whatever the most popular platform-agnostic framework is then) may come in handy. Do the same as with the minimal web app and add the build artifacts to CI. Also talk about getting software to the app/play store (a common question) and signing apps.
Homework: Use the view API call from the backend to show the data on the mobile. Play around with the mobile project to display it in a nice way.
5. Introduction to refactoring (yes, really), if we are really talking about JS here, mention things like typescript, flow, elm, reason and everything with types which compiles to JS. Types make it so much easier to refactor growing codebases and imho everybody should use it.
Flowtype would make it probably easier to get gradually introduced in the already existing codebase (and it plays nice with react native) but I want to be abstract here, so that is just a suggestion (and 100% typed languages such as ELM or Reason have so much nicer errors).
Also discuss other helpful tools like linters, formatters.
Homework: Introduce types to all your API calls and some important functions.
6. Introduction to (unit) tests. Similar as above.
Homework: Write a unit test for your form.
(TBC)4 -
git commit -m "Now we have a not a true scatter scatter chart"
I mean, what's the worst that can happen, my commits are very informative. -
I've been using Git since 2014. So why do I STILL cringe whenever I have to revert commits or do a hard reset back to HEAD? What's going to disappear? What will remain? Will my entire Git history be vaporized? It's a total game of Russian Roulette to me. So, without the certainty level I want, I just do what feels safer...I grab the versions of the files I think are what I need and stick them back into my repo, then git status and commit the correct changes back in.2
-
git rebase > git merge
I'm honestly tired of colleagues completely fucking up the git history along with creating conflicts for no reason at all.
How do you even manage to "recommit" changes when merging?
I can't even squash properly because there are 5 merge commits on the feature branch. Fuck off8 -
Guys at work just found out that they can see all the commits in a repo that they have to change stuff in on a daily basis..
Granted they aren't really the most tech savvy sometimes but they have both been there for like a year...
Made me laugh a bit when one went
"Dude did you know we can search our git for commits? So we can look for who fucked up!?" -
So I made a repo to have a template to initialize node projects.
I copied the folder to a new folder and found all commits where there but I wanted to start fresh.
Quick googling on how to just start fresh ... then I realized I might just delete the .git folder, see what happens.
Then BAM! All fresh,
git init
git add .
git commit -m "first! Template set"
Life is easy sometimes. -
Learning git continues..
So I started learning git on an actual project and pushed all commits on master.. after the project had been completed I gave more time learning git and felt like an idiot...now I'm efficiently trying to learn git...4 -
Welcome to Git, where when you try to split a commit you end up making 8 more commits than you want.
Based on a true story, today at work -
First rant... I'm on a large project where en use Git. Apparently I am the only one who, after pulling the dev branch, do multiple local commits to track (and possibly) undo my local work before I merge into development again. Everyone else do ONE local commit. Am I gitting wrong?!4
-
Ok finally, I can tell now.
There's a college project I'm in with 2 more people that uses Python and AnyLogic (separately).
We also need to write some LaTeX, so as I was already using PyCharm for the Pyshit, I used it for the LaTeX and for Git.
I used it for Git too because I didn't know how it used Git and was worried that if I used the console it didn't recognize something or glitched out or something. And what the hell, it's a mature IDE, what could be so hard or possibly go wrong?
I had to re download the repo a couple of times because between pushes, pulls, merges and commits something happened and the repo ended in a weird state.
These are all the things I do:
Add, commit, create branches, merge, push, pull and delete branches.
So, I hadn't opened in some time. The last time I tried to bring something from another branch, and stayed up late to finish something. I was waiting for my classmates to join the call when I thought something like "Hey, I should commit what I did until now, it worked great.". When I examined the IDE I found out I was in the middle of a rebase or something. I start clicking buttons to at least try to commit. I press "Skip Commit". I lose everything.
What the fuck‽ As you can see in the comprehensive list above, I never do something similar to a rebase. Apparently when I tried to merge a couple of branches, the stupid IDE thought I tried to do a rebase and never asked me to finish it. Why do something I have never asked? Plus, why haven't you prompted me to finish the operation? That's so stupid. I'm never trusting IDEs again.
I was so lit for losing so many hours of work I did a couple of weeks before, I would have to think it and do it all over again because of something I never asked.
We spent an hour looking for a way to recover the lost code.
Why an hour, you ask, if you can use the Local History for that in PyCharm?
Because none of us had used it before and the articles we found said that you had to open it from the toolbar. From the toolbar it was greyed out.
Then I found the option in the contextual menu of the files. Recovered the LaTeX files but on the AnyLogic files, it was greyed out.
I had to open the Local History of the folder containing the AnyLogic file.
And that was that.
I almost faint.
Fuck Python, fuck PyCharm.8 -
Yesterday, we were still working with RTC as our tool for repository.
This morning, we got announced that our code was migrated to Git and so we have to use it.
but we wasn't warned at all unless the operation was fully done.
Fortunatly they didn't erased the former project on RTC because my latest commits weren't migrated and it took me time to code that.
But still. Warn people for major changes.5 -
At school during my first Java project we had to make a simulation of a parking garage and what effects price changes would have in order to find the most optimal business model from some company.
At the project kick off.
School: "we will be checking your code for plagiarism. if you use code from the internet, even if its 2 lines you need to mention the source. otherwise you will fail this cource."
We go on to do the project.
Friend of mine who was in another class sees a group presenting a 2 days old version of my teams application. theres literaly a credits button that displays the names of the people that worked on it in a popup.
Me: mentions to a teacher that my project was stolen.
They literaly didnt even change the name and pulled the entire repository from github and handed it in.
The fucking teacher doesnt even check the code / git logs after i mentioned that the entire codebase was stolen from a public github repository.
There was an endless mountain of proof to support my claim such as our team members names hard coded in the code they handed in and about 500 commits from our accounts.
I will from now on NEVER EVER mention sources when i hand in code at school.1 -
Sitting in a bar with a senior colleague (Me - Student part timer, Him - 15+ Years of experience).
We started talking about our projects and he mentioned that after this, he'd get to spend his evening fixing a git merge, which went wrong because one of his teammates used cherry pick and thus messed up the history a bit (oversimplified).
So he tells me he'd be spending hours to get an overview of his colleagues codes (multiple devs and only team leader knows who does what exactly).
So I suggested he revert these cherry picked commits and so could maybe solve the problem in less time.
He thought about it... Told me HE didn't think of that and thanked me for my help.
Long story short: Today was a good day :31 -
We had one group project where we made game. We had like 3 developers, one guy to do some artwork and one to do most of the project management. And at that point in the project I had done most of the work so far (but not because the others didnt do anything, I just had fun coding).
One day said artwork guy managed to accidentily revert 100 of my commits without even opening a single code file. He didn't know git and issued random commands. I wouldn't know how to fuck up a repository like that even if I wanted to. Usually I am rather calm but at that point I was a little bit pissed.4 -
Questions/best practises for git?
For example:
- use present tense in commit messages. (why though?)
A friend of mine also starts his commit messages with either [Task] or [Cleanup]. Useful for finding Commits in Gitlab etc, because only the first line is shown from the message.
Also, one teacher recommended the usage of branches and the other didn't because of alot of potential merge conflicts when working in a Team or a larger Collaboration. What are your thoughts?
Sorry for the messy post, have a hangover4 -
Writes a slot of code,
Closes laptop and goes for sleep,,
Wakes up opens laptop
commits and git push
and sleeps happily.
who knows there might be robbery at night, or fire in home or may be earthquake. -
In every team there would be a "git spammer", who always commits on top of other's commit just to increase the number of commits.
😕🤬🤯3 -
is it necessary to have cherry picking a part of git branching/release process?
we have 3 branches : develop, release and master.
currently every dev works on feature as follows : they make a branch out of develop, write code, raise pr against develop, get it reviewed and merge back to develop. later the release feature list is generated, and we cherry pick all the release related commits to release branch, and make a prod build out of release branch. finally, the code is moved to master and rags are generated accordingly.
so the major issue with this process is feature blocking. as of now, i have identified 4 scenarios where a feature should not be released :
1. parallel team blocker : say i created a feature x for android that is supposed to go in release 1.2.1 . i got it merged to develop and it will be cherry picked to release on relase day. but on release day it is observed that feature x was not completed by the ios dev and therefore we cannot ship it for android alone.
2. backend blocker : same as above scenario, but instead of ios, this time its the backend which hasn't beem created for the feature x
3. qa blocker : when we create a feature and merge it to develop, we keep on giving builds from develop branch adter every few days. however it could be possible that qa are not able to test it all and on release day, will declare thaf these features cannot be tested and should not be moved to release
4. pm blocker: basically a pm will add all the tickets for sprint in the jira board. but which tickets should be released are decided at the very late days of sprint. so a lot of tasks get merged to develop which are not supposed to go.
so there's the problem. cherry picking is being a major part of release process and i am not liking it. we do squash and merges, so cherry picking is relatively easy, but it still feels a lot riskier.
for 1 and 2 , we sometimes do mute releases : put code in release but comment out all the activation code blocks . but if something is not qa tested or rejected by pm, we can't do a mute release.
what do you folks suggest?9 -
Git cherry-pick 35 commits, another dev commit to the wrong branch, and these commits will be released first
-
It’s certainly a feeling of progress as a dev when you get to using the advanced features of git to rewrite history successfully.
Though to make this a proper rant: holy hell what a ride! I’m glad I had everything backed up somewhere. Somehow I’d went Thanos on the repo. Deleted about half the files at random. Had to fast forward and then rewrite the history via rebase. Dropped a bunch of commits I think I should have squashed. I’m still wondering if I even did the right thing. I think cherrypicking is what I’ll go for next time. My repo now reads 59 commits behind but whatever. All my work got into one commit which is what the dev controlling prod wanted. -
Since I see may rants(including mine) about non descriptive commit messages, here's something people can follow
https://udacity.github.io/git-style...
You don't need to exactly follow this but you get a good idea.
I personally follow something like this and it has helped me understand my old commits a lot.
Thoughts?1 -
temp commits are generally more useful than git stash.
instead of stashing, do a commit with a message like "THIS IS NOT A COMMIT, DON'T INCLUDE THIS". with some discipline you can then go back to your branch, `git reset --soft HEAD~1` and voila, it's similar to a `git stash pop`.
but it's better because you can do this in multiple branches at the same time and there's no fear of accidentally dropping some stashed commit.5 -
Turns out that stuff you commit and remove in later commits stays in git history and is searchable.
That, kids, is why you either squash your commits or just don't put swears in your debug code.
Especially if you have literally dozens of colleagues on the same codebase.
And you work in a large organisation where this sort of thing is frowned upon.
The crime was months ago, I wonder what the statute of limitations is on that.
And yes, in the years-long history of the codebase it's JUST me that's used any of the big three.3 -
When you work on something for few hours and then write a script to recursively replace strings in your project but forget to take into account the git index and end up corrupting it 🤦🏻♂️🤦🏻♂️
I know I should have pushed commits in between. Lesson learnt -
Today, rebase finally made sense to me and I was able to squash a branch to remove a whole lot of unnecessary commits.
It only took 2 years... Guess all three times I used git in command line and all the Linux terminal/acting finally made a synergy.
Given I had to use force push that means it's like overwriting an existing repo with a different one?2 -
Started new internship last week, hired as dev but working qa till their next release goes up. See last 3 posts for some horror lmao. They... don't know how to use git but insist they do. 275MB single repo for entire angular frontend (no dependencies are pushed, few images) and "angular backend" (according to PM). Commits to master, bad commit messages, no testing except me on qa..... death
-
Honestly, I love using the GUI and the terminal in combination when it comes to Git. I feel like I'm faster doing just general commits (hint ctrl+enter commits your work).
But I use the terminal when I start getting into the weeds, like checking out, resetting and doing stuff with my branches.1 -
6hrs trying to get a static and dynamic cell working in Swift. Xcode crashes and not a fucking thing was saved! My git commits make no fucking sense!4
-
More frequent commits are imperative to your sanity!
Trying to find a code change in git, and I stumbled across a commit comment I can't even remember doing!1 -
Flyway is bullshit. Genuinely who the FUCK finds this useful??? Why the Fuck do you want to have an ORM, next to a custom jdbc and to top it all off you also write custom sql queries in flyway just so you can prove your colleagues what db migrations happened WTF you can see that on git commits dumbass!!!! 3 different sql models that need to be the same but are written differently each. One through ORM, through code and through raw sql queries. Flyway just makes shit harder and having 1 change in model means i need to fuck myself with rewriting raw SQL queries in flyway WASTE OF TIME8
-
Questions more then a rant...
I've moved from being a lead on imploring DevOps and Agile practices in a large Telco to now working for a security consultancy... The team I'm with are s*** hot when it comes to SecOps (which is why I changed jobs) and I've been hired to he the automation and working practice expert on the team. Already got some of them learning Ansible which is a great start!
I've got delivery now being pushed to Git and all client work being tracked in Jira and properly documented and collaborated through HipChat and other CI tools on the way....
My question is this... Does anyone have some awesome resources to teach people Git, Jira, Jenkins, etc. quickly without forking or branching out on expensive training? Focus on being a technical but consultative team. Ideally just wanna pull some awesome guides and make. My own commits on them for the team... Please fire a story or epic away!1 -
am i the only one who likes quoting Blazing Saddles in git commits?
most recent being adding mongo to a project. -
I'm learning git and i must confess that i've been thinking about use sourcetree gui to make my commits, may be i'll try it tomorrow6
-
Just a friendly note: If you use the same technique as I i.e. local GIT repositories backed up on cloud, ALWAYS make sure there is still at least as much free space as the largest repo shallow clone.
It may happen that some really really archaic "commits" will disappear and git won't work as usual, but mostly you'll have an access to the branches, which you can diff against the master and make patches. Then just clone, make branches from patches and code happily ever after.
Also... you really really shouldn't push when you discover(git fsck --all) such an issue in your local repo, although I think git won't even allow you to do so. -
Right now, everything. I started at a Consulting firm because I expected many new problems to tackle, solutions to develop and generally to always have a fire burning underneath my ass but instead I always develop the same standard bullshit.
I miss the days in my old job when there was just a problem and the task to solve it. When I stared down giant amounts of data, just KNOWING that somewhere in that mess is some structure I could exploit and that short moment of inspiration when I finally pinpointed it. The rush of endorphins when the solution became clear and everything fell into place to form a beautiful pattern amidst the chaos test data, git commits and numpy arrays.
Now its just "Yeah, would you just write another selenium testsuite that throws out fail or pass and wastes all the information because the only reason I'm a testmanager is because I'm too incompetent to do anything else and not my passion for the field".
The constant, mind numbing repetition of always the same patterns where the occasional dynamic element that becomes stale is the highlight of my work week... I would have never thought that making good money with easy work would ever get me as close to depression as it did.5 -
Remember that git commits are just like commitments in a relationship.
Make them small and avoid the big ones.4 -
Dem feels when you cba setting up a project locally but want to use Git anyway for when you can be arsed... new repo once it's in a better place!3
-
Today's story.
1. Git commit all changes
2. Need to git pull bcz of master change
3. Mistakly did git commits undo.
All my changes fucked up.
At last
Ctr+z saved my ass -
Going through my git commits and wondering why I would just commit every file under the same commit. More often than not they had nothing to do with eachother 😐2
-
Why eclipse?
Why did you think that implementing git yourself was a good idea?
Why? Fucking why?
Now when I switch to my development branch and it's a few commits behind I get lock fails when I fetch. And when I pull?
I'm fucking 32 commits in front of the branch? Like what the Fuck eclipse?
How can you pull those commits from the repo without fetching?
... I use the command like now.3 -
Github-gardener is destroying the legitimacy of GitHub as a valid portfolio for applying in high-tech jobs, and it's frustrating. I will never stupe this low, and you shouldn't either.10
-
That moment when you realize you have to deal with git now because you have a habit of “changes now, git later” and also like commits to be clean and free of notes you leave to yourself that aren’t meant to be there after the feature is done
Fuckkkdkdkdkfkkf -
I have always thought I work with morons. Now I know for a fact I work with a bunch of morons! What kind of idiot commits node_modules and apk files? What kind of moron creates a git repo without gitignore?5
-
I had a group project due for a object oriented programming class. I noticed my partner hadn't made any commits to our git so I asked if he had anything made. Turns out he was partying all weekend and didnt commit anything until the last day. We failed that project... At least I passed the class and he didn't. Moral of the story is, don't choose a partner at random
-
HR declared day as holiday.
You Resume work next day and Git commits channel had 400 unread messages,
Silently telling at you like - hmm lazy lots get back to work!
To the hard workers You could’ve waited to push your commits the next day brother, we know you don’t like holidays like we do. -
I Love git. After a year, I still can't decide how to break my commits up. Should I create a new commit with every level me of code, or every function or feature meaning (a few functions). What are your ideas?33
-
Hey guys,
I'm trying to convert a SVN repository to Git and I want to keep the history. So far everything has been going more or less good but when I push the history (of commits etc.) doesn't get commited too. Is there a way to change that? What do I need to do to get my subversion changes/commits in git?16 -
alias "phpunit-commit"="phpunit && git add . && git commit"
This have saved me so much time.
- phpunit
- if all GREEN, we add and commit to git
(Yes, theres likely tools for this, and some that run after pushing - but I've already avoided some faulty commits)3 -
Had a debate with a colleague today over git commits, I had 24 outstanding and he had 15. We came up with a little game...
Who can create the most changes for a single commit. The winner is the one who can remember what each change was without looking at the changes.
Needlessly to say, we both lost 😂 -
On my free time I was looking for software where I could visualize the shape of the git graph to sort of reflect Git Flow. What I found was a bunch of git GUI's that list features that normal git already has:
- "undo local changes!"
- "squash commits!"
- "undo branch deletions!"
Da heck people actually pay for this?3 -
Question about managing git branches.
For releases, we branch develop (the main branch) into a release.version branch in which we bump the version and do any last minute bug fixes for issues found in testing.
After the release we need it back into the main branch as well as master.
But also we keep the branch as well in case we need it such as for a hotfix release.
Is keeping it right though?
General issue on my team I feel is nobody deletes their feature branches after they are done and merged into the main branch. I think there is a feature in most Repos where it can auto delete these branches when a PR is merged.
And well branches themselves (at least the HEAD) are sort of just bookmarks. All commits can be accessed by their hash and basically is a full snapshot of all the commits that upto that point that it was based off of?
So you could just tag the last commit in the release branch with release.version and delete the branch itself? And that I think is the correct, normal way?
Not sure how to explain this to my boss or team as they aren't big on technical details...9 -
After working in this godforsaken clusterfuck for half a decade, where no one knows what the fuck git is, and they just use a single git branch like SVN…
Ive oddly come to like resolving merge conflicts. It’s strangely calming, almost like playing games.
Do let me know how fucked in the head I am, my emotional compass is probably buried 4 feet deep under a pile of retarded commits.2 -
And I thought I knew a lot about practical git... But today I learned about fixup commits and autosquash. Awesome!
-
TFW you know you're going to be seen as a sort of code anarch or unenlightened (foo)barbarian for even suggesting that there are other git workflows more suitable than GitFlow, but you do it anyway.
Saying that I keep my master unprotected feels like telling Grandma I worship Satan.
I work with a very small team that's always physically nearby, we all get along well, trust each other and communicate to know what everyone is up to, which I guess is hard to believe in and of itself, but is it so fucking hard to believe that we'd be okay without redundant eternal branches or a vomitload of unbisectable history-warping merge commits? -
I need some help. I have a 1 months old MR in gitlab with 5 commits of a feature that I have to revert.
I have hard time understanding how to solve git revert conflicts and frankly this three windows GUI on intellij idea is very confusing to me. I am like afraid that I will accept a bad change or miss something.
Is there any other way to make this merge conflict solving easier? I was thinking maybe I could just rebase to head where I added my commits, revert them without conflicts and then rebase that branch on latest develop?
In that case I would be solving merge conflict by adding stuff instead of removing old stuff and being afraid that I will mess up something. Goal is to create a revert feature MR.6 -
Not the 'most embarrassing' part but not my proud moment either.
My sir have recently put me alongside him as the teacher assistant in this summer's batch. Last week he had to go somewhere so he asked me to take a github session with the class( well not exactly asked, but i just voluntarily commented) . mind you am myself a novice, never done anything beyond pushing data commits and pull requests. (But sir was fine with it , saying he wants the students to atleast enough knowledgeable to submit there homeworks.)
Fast forward to Night before class and i am trying to sleep but couldn't. I had all ppts prepared, hell i even prepared a transcript( hell i uploaded it to pastebin thinking i will look at it and read ).
But worst shit always has to happen when you do a presentation.
When the class started, the wify was not working. Those guys had never had done anything related to it so first thing we did was to make sure every of them gets git installed(with lots of embarrassments and requesting everyone to share their hotspots.not my faluts, tbh).
Then again, am a Windows-linux user with noobie linux and null mac experience. So when this 1 girl with mac got problems installing, i was like, "please search on SO" 🐣 .
So after half an hour, almost everyone had their git/github accounts ready to work, so i started woth explaining open source and github's working. In the middle of session, i wanted to show them meaning of github's stars ("shows how appreciated a repo is"), nd i had thought of showing them the react js repo . And when i tried searching it i couldn't find it (its name is just react, not reactjs ) so ,again :🐥🐥🐣
So somehow this session of 1-1.5 hour got completed in 4 hours with me repeating myself many many many times.
And the most stupid thing: our institute has every session recorded, so my awkward presentation is definitely in their computers 🐣🐣🐥🐥 -
Or company banned DourceTree so everyone had to switch to just using git shell.
Except me... I installed GitExtensions which is allowed.
I can't decide if I'm a git noob, better at being lazy, or more efficient.
I do use she'll for certain things like deleting, listing branches but for commits and resolving merge conflicts... still prefer gui9 -
Spent like all week working on a feature set in a web app, finally got to a point where i thought it was functioning well, ran tests, tests passed.
I was exhausted but happy. All along i have been pushing to my GitLab server. I save my commits and even though exhausted, i am happy as i go to bed.
I wake up, run some errands and my business partner says, eh! Can i come see that new feature set you built, sure, i will be home soon.
I was at the barbershop, trying to look like a human being again. I get home boot my computer and i scream.....
Arrrrrrrrrrrrrrgh
I check GitLab, i check my Git Log and i start to sweat, i was in the air conditioner but it felt like someone turned the heat up.
Git log shows my last commit was 2 days ago, my app is at the state it was 2 days ago and i can't frigging find all i have built.
I need to show this to the client, have no idea what to do now, so stressful. My partner say, you know what, just watch a movie. You built it before, you will do it again.
This happened to him a while ago and i gave him similar advice, it felt wicked hearing it now.
Anyways, i have to build that ish all over again, i do know i wasn't dreaming about having built it. I asked my wife and she said, i did, i was always working. So confusing.
Anyone experienced this before, i have no idea how to find my code.
Help Meeeeeeeeeeeeeeeeeeeee4 -
'Cuz every time we merge, I get this feelin'.
And every time we merge, I swear I could diff.
Can't you see my merge conflict, wanna force push commits,
in the remote history of Git
https://youtu.be/4G6QDNC4jPs?t=323 -
Have a question about git rebase with android studio.
So I have a feature branch which I finished working on, I made a pull request to develop branch and now I see many conflicts because develop is few commits ahead.
In android studio I switched to my feature branch, then did a git rebase develop and resolved all conflicts. After conflicted files were fixed I did a git add conflicted_file and continued with git rebase --continue until the end.
Now everything is finished. I have a local feature branch that was rebased to current develop, and I resolved all conflicts.
Problem is when I do a git push to my remote feature branch, I get a merge conflict error conflict from android studio and now I have to solve all merge conflicts yet again for some reason.
What I am doing wrong?2 -
!rant
To embrace the TIFO (today I found out)
$git rebase -i <hash>^
You can reorder commits and squash.
I just used it, to amend a commit that was not HEAD with some changes I’ve done later.12 -
Question about git. I worked on dev branch and made 10 commits.
Then I squash merged 10 commits from develop to master and made a release build.
Now problem is if I make a pull request from develop to master bitbucket will still show that master is behind (because develop has fixes in 10 commits while master has all of them squashed in 1 commit).
Now my question is whats the best way to make sure master and develop are synced (basically that master would have everything what develop has) ?
should I just merge master into develop back after the release?9 -
git cherry-pick -n <commit>
The "-n" is alias for "--no-commit" and it applies the content of the target commit into your working directory without making any commit. Usefull if you want to cherry-pick many commits, tweak them and make a new one or simply want to grab some functionality into your index.
What's yours well-appreciated but not-that-well-known git functionality?3 -
Your branch and 'origin/foo/bar' have diverged,
and have 2 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
git pull
hint: You have divergent branches and need to specify how to reconcile them.
git merge origin foo/bar
Already up to date.5 -
Yesterday we had discussion on with developers about continuous deployment. When I asked one of the senior developers why they can't uncommit what commits you made to integration branch and which led to integration test failures. He said it's against the basic philosophy of git to uncommit... I don't know how git works...but seriously you can't use previous version of code or can't uncommit??6
-
Been making minor refactors to code base. Ran into something that resembles and behaves like a brainfart. Accepts arguments, uses them to query DB then completely disregards result and builds own result yielding dubious output.
Dumb as I am, went to investigate the story behind it. Maybe some weird business rules involved.
Git gave commit. 100+ files changed. Nice one.
Went to original story and there it was, clearly stated, like a true moronic decision: "Squash all feature commits to a single commit". No specs, no description, no explanation... Nothing.
Well... FUCK YOU TO!2 -
How to use git rebase when working with master and staging branch?
It might be a stupid question, but I really like the idea of creating a feature branch, work on it, if there are multiple commits squash them, rebase in top of master and then create a pull request from that branch to master.
It keeps the gut log pretty clean.
However, how would you do this, when not only working with a master branch but a staging/testing too?
Would you just rebase onto staging, merge to staging and when everything is fine, rebase onto master and merge again? Is there a netter way?6 -
Why is making a git UI so hard? I've tried many and they seem all suck in some ways. Newest is gitKraken, and with that you can't even trust that it pulls the latest version of the branch you are on.
So what I did was:
1. Open a repository
2. Press Pull button
3. gitKraken says pulled successfully, you already have the latest.
4. I wait 2min, then check the gitKraken again, and it says there's 4 new commits ahead of me. And trust me the person has pushed those long time ago.
I just wonder how can you screw that kind of basic operation in a git client? They must use some kind of internal cache layer there, that takes time to update that the user does not have the latest version yet.13 -
I have a git feature branch with my commits but also have merged the changes from the main branch to resolve merge conflicts before PR.
But now need to create a special release with just my changes.
So I think have to cherry pick all my commits on my branch some the last Release. How can I do that?
Develop (others) + Feature => Develop
Want to create new branch
Last Release + Feature (but only my commits since last Release)3 -
Git Semantic commits. Any thoughts? I just came across this today. Any tools you could suggest? I came across a command line tool for feat, chore, test, bug, fix etc. by russiann on github should I run with that or something else?
-
Question about GIT regarding intellij idea. I have a local branch develop and I perform a git fetch via GUI. I see develop gets a blue arrow meaning that there are some remote changes that happened. In the past I would just click on that branch and click update, but I noticed that sometimes fetched commits from remote get applied to my branch in a weird way, for example they get merged. Later when I want to make an MR I get duplicate commits because git doesnt recognize that my branch has these changes already.
Right now I just delete that develop branch and check it out again, to make sure I'm working on a proper develop.
Wondering if there is a better way of doing this instead of deleting develop branch and checking it out again each time?5 -
We're slowly migrating to VSTS (sigh) from Mantis and SVN for tasks management and code repo.
It's been 4 months now and we still have to move the code from SVN to GIT, asked management when they plan to do that and they still give no ETA, and when asked to make sure our commits stays intact after the transfer I got told "no need for that we're just gonna copypaste the last version of the source code". And most likely the local SVN server we're using is gonna be dismissed.
On top of that, by the way they want to use it, VSTS is being terrible for tracking stuff. I'm so used with other tools at home for some side projects and even though I expressed my concern about VSTS I got ignored over and over...
Bonus (not so) fun fact: branches are something mythic here so everyone else commits straight to master and it's a pain in the ass everytime, because people happen to break things most of the time.
And no, unfortunately this is not a small company.
Send halp please 😭 -
How do you deal with multiple git identities?
Im working fulltime + freelancing + working on my own projects and all of them are on different gitlab emails. It was very annoying to keep remembering to set my git email to a proper one each time I switch to work on another project.
Right now I came up with something easier:
I started using just 1 gitlab profile (personal one) and added my both company e-mails as secondary emails to my personal gitlab profile.
This way I can keep my git identity the same (personal e-mail address) and if I push to company1 repo or company2 repo the commit author e-mail addres is shown email@company1.com and email@company2.com as these emails are given access to private repos and they are added to my personal gitlab account.
Just wondering if these companies will see my commits to other repos by viewing my personal gitlab profile or no? Or if there is an easier way to handle multiple git identities without having to switch between them each time I open another project and want to push some commits.7 -
Hello, I am doing master in Pharmacy, but I like programming and consider to switch or connect somehow industries. I could write simple scripts and small programmes in Python, but I want to write code with good practice from beginning.
So my question what should I know and put in use, maybe some resources if someone has them or just terms for further search. At this moment I use gitlab for VCS (my commits sucks and my whole usage of Git sucks, but at least I use branches), I am trying to separate control from model (MVC but I guess I do it poorly), also I use keepchangelog rules for changeling, and semantic versioning for versions, PEP8 and Pokemon names for my variables and functions as it helps read code later.7 -
I played around with Git Rebase today to learn a bit about it, and it was fun, but in the process I completely obscured my process and erased a commit that has a published artifact associated with it. What remains is a few incremental preparation commits hoisted up from today's cleanup, then a pair of commits on two projects both of which only compile against the version of the other repo built from the other commit.6
-
"Worst drunk coding experience?"
My alcohol tolerance is very low. So, every stupid attempt of my coding in such a state is the worst experience.
There's this pulsing feeling in my skull every 10 seconds blocking my attention.
And there's an increased chance of mistyping commands.
One time, for some reason, I kept "pulling" the git commits when I actually wanted to "push" them. I spent a lot of time finding out why the f*<k GitLab is not showing my new commits in my PR before realizing my sheer stupidity.
And it takes me only one 3.5dl can of low alcohol content (like 3% abv) drink to relive these experiences. WTF. -
So, I am in the last stages of development of a really big project and I need to figure out a way to package future patches and updates for the client in order for them to manually update the project on prod server.
For reasons I cannot specify here, they will not use any automated process, and we need to provide regular patches and updates for the next year.
So I was thinking of using git archive to package changed files from our repo for every new commit, or series of commits, and just give them that, along with any database schema updates as sql files (again, no automation can be used).
We are talking about a large PHP + MySQL app, and cannot use automated deployment strategies.
I feel there must be a better way to do this, but this is the best I could come up with so far.
What do you people think?
Any ideeas? -
Well the good thing about last week is that I helped my company get through their hurdles of getting their backend to work with their mobile apps. Though it's in the weekends, but hey it gets me paid.
I just hope that the PM would cut me some slack for not doing git commits properly. After all, we're not big in terms of company size, and if the PM is so anal about it, we can't move fast enough. As long as the PRs are reviewed and made sure that the web app works, nothing else matters.5